黑马程序员技术交流社区
标题:
关于服务端Socket疑惑
[打印本页]
作者:
冯华亮
时间:
2012-8-11 19:26
标题:
关于服务端Socket疑惑
在C/S开发时,首先需要在S端绑定监听端口,接下来就是等待C端客户连接了,换言之就是调用new Socket(xxx).Accept()这个阻塞式方法,其单独开一个线程,那么现在我想问这个线程内部工作机制,望结合具体代码说明之。谢谢!!
作者:
许庭洲
时间:
2012-8-12 12:44
//通过IP地址和端口创建网络节点对象
IPAddress address=IPAddress.Parse(服务器Ip地址);
IPEndPoint endpoint=new IPEndPoint(address,int.Parse(端口));
//创建一个套接字(工具,固定代码)
Socket socketWatch =new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//将套接字绑定到唯一的网络节点上
socketWatch.Bind(endpoint);
//设置监听队列长度
socketWatch.Listen(10);
//通过线程为每一个与之连接的客服端分配一个Socket对象:
Thread threadWatch=new Thread(WatchConnecting);//创建负责监听的线程,并传入监听方法
threadWatch.IsBackground=true;//设置为后台线程
threadWatch.Start();//开启线程
//创建监听方法
void WatchConnecting()
{
while(true)
{
//开始监听,一旦监听到客户端的连接请求,就分配一个与之对应的通信套接字
Socket sokConnection=socketWatch.Accept();
MessageBox.showDialog("有新的客户端成功连接!");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2