socket编程

DEMONSINE 2009-03-23 03:15:42
最近刚看SOCKET编程可能这个问题简单了点啊
用SOCKET写的两个程序可以在同一个局域网内通信吗 但是不知道为什么我写的好像不可以啊 要是真的不可以 应该用什么~
服务器端
namespace NetStreamServer
{
class Program
{
static void Main(string[] args)
{
IPAddress address = IPAddress.Parse("10.6.11.76");
//IPAddress address = IPAddress.Parse("127.0.0.1");
TcpListener listerner = new TcpListener(address, 13000);
listerner.Start();
TcpClient tc = listerner.AcceptTcpClient();
NetworkStream stream = tc.GetStream();
byte[] buffer = new byte[50];
stream.Read(buffer, 0, 50);
Console.WriteLine(Encoding.ASCII.GetString(buffer));
Console.Read();
}
}
}
客户端
namespace NetStreamClient
{
class Program
{
static void Main(string[] args)
{
TcpClient tc = new TcpClient();
IPAddress adress = IPAddress.Parse("10.6.11.25");
tc.Connect(adress,13000);
NetworkStream stream = tc.GetStream();
Console.Write("请输入你要传输的信息:");
string message = Console.ReadLine();
byte[] buffer = Encoding.ASCII.GetBytes(message);
stream.Write(buffer, 0, message.Length);
tc.Close();
}
}
}
...全文
153 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
DEMONSINE 2009-03-24
  • 打赏
  • 举报
回复
饿 10.6.11.76 这个 明显是局域网中的另一台电脑的地址
脱离语言 2009-03-24
  • 打赏
  • 举报
回复
10.6.11.76

这是你电脑的IP吗?很奇怪的设置唉,连网了一般都用192.168....没连的话是127那个

TcpListener listerner = new TcpListener(IPAddress.Any, 13000);
这句是监听你电脑上所有IP的13000端口,所以就不用你自己写IP了,自然错不了,你先查查你电脑的IP,看有哪些IP,10.6.11.76应该不对
周公 2009-03-24
  • 打赏
  • 举报
回复
.net网络编程之一:Socket编程
在.net下进行网络编程其实也相对比较简单,因为在.net类库已经提供了大量封装好的类。在.net下网络编程比较底层的类是System.Net.Sockets.Socket类,这个类提供了丰富的方法和属性,并且还提供了异步数据传输支持。这是一篇介绍在.net下如何利用Socket进行网络编程的例子,在例子中使用了线程,以便监听服务器能够同时处理多个客户端请求并响应。使用Socket来传输数据是比较高效的,但是传输控制相对来说要麻烦一点,针对网络中一些特殊场合的数据传输,可以使用特定的传输协议,在这个系列的后续文章中会继续介绍网络编程的有关知识。

最近也在了解Socket编程方面的知识,参考一下吧。
脱离语言 2009-03-24
  • 打赏
  • 举报
回复
while()
{
TcpClient tc = listerner.AcceptTcpClient();
}

得循环监听,不是每次都会有结果

hnzzzsl 2009-03-24
  • 打赏
  • 举报
回复
服务器端侦听的是所有网络接口上的客户端活动,按照你最开始的办法,服务端无法侦听到客户端IP
测试菜鸟 2009-03-24
  • 打赏
  • 举报
回复
来这之后 发现可以学习的东西太多了,以前时间真是虚度了 up 学习
DEMONSINE 2009-03-23
  • 打赏
  • 举报
回复
他错误的 提示是 “在上下文中,该请求的地址无效”
饿 为什么呢
scy251147 2009-03-23
  • 打赏
  • 举报
回复
不懂,帮顶
DEMONSINE 2009-03-23
  • 打赏
  • 举报
回复
问题好像解决了 实事证明是可以传输的 哈哈 但是现在问题又来了
我只是稍微改了下 把服务器端的代码改了下
namespace NetStreamServer
{
class Program
{
static void Main(string[] args)
{
//IPAddress address = IPAddress.Parse("10.6.11.76");
TcpListener listerner = new TcpListener(IPAddress.Any, 13000);//就改了这里 但是上面的为什么不行啊 迷惑中.......
//TcpListener listerner = new TcpListener(address, 13000);
listerner.Start();
TcpClient tc = listerner.AcceptTcpClient();
NetworkStream stream = tc.GetStream();
byte[] buffer = new byte[50];
stream.Read(buffer, 0, 50);
Console.WriteLine(Encoding.ASCII.GetString(buffer));
Console.Read();
}
}
}
csgdseed 2009-03-23
  • 打赏
  • 举报
回复
client需要设成server的IP地址,即发送socket包的目标IP

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧