winsock问题或.NetSocket

来源:百度知道 编辑:UC知道 时间:2024/05/25 19:00:02
想用第三方控件winsock写一个局域网聊天程序,
不会用.Net提供的socket类,
想实现多个客户端互传消息,是不是需要服务器做中转?
假如C是服务器
A,B都是客户端,A->B发送消息,实际是通过A->C->B这么去传输的?
如何A,B直接去连接?

或者使用socket技术,
不知有人能讲解一下.Net下的socket不,我是用.net开发程序.

假如C是服务器
A,B都是客户端,A->B发送消息,实际是通过A->C->B这么去传输的?
如何A,B直接去连接

AB先链接服务器C
C保存AB的IP地址
A要连接B就从服务器C哪里取得B的IP然后发送数据包到B
B可以直接回复A

不知有人能讲解一下.Net下的socket不,我是用.net开发程序.
c#里的Socket已被封装成一个类,还叫Socket,命名空间是System.Net.Sockets

using System.Net.Sockets;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//第一个参数就这一个,固定,第二个有2个,另一个是Dgram,第三个参数也有2个,另一个是UDP,其它参数都是预留的,现在没用
//服务端
//首先要绑定IP及其端口,ip就不说了,端口说一下,端口范围是0-65535,其中1000一下是系统预留的,我们可以用的是1001-65535,端口相当于一个程序的ID,外部程序通过端口来找到所需的程序,这个端口并不是平时所说的各种硬件端口,而是虚拟的,更多的自己去查查相关资料吧
socket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"),6666));
//绑定之后就开始监听端口,其中的数字8就是队列长度,8就代表最多允许8个程序同时等待链接
socket.Listen(8);
//Accept是收到信息并返回一个Socket对象, Receive返回收到的信息
socket.Accept().Receive();
//客户端
//客户端创建Socket之后要先测试连接服务器,确保连接成功
soc