本帖最后由 黑马郭 于 2013-12-25 20:28 编辑
请各位大虾们指点一下 不胜感激 ……
服务端接受客户端发送的消息,部分代码如下:
/// <summary> /// 负责监听客户端连接请求的方法 /// </summary> public void WatchConnection() { while (true)//持续不断的监听客户端新的连接请求 {
Socket socketConnection = socketWatch.Accept(); dic.Add(socketConnection.RemoteEndPoint.ToString(), socketConnection); lbKey.Items.Add(socketConnection.RemoteEndPoint.ToString());
//创建线程 调用通信套接字的Receive方法 Thread thr = new Thread(ServeReceive); thr.IsBackground = false; thr.Start(socketConnection);//疑问 dicthread.Add(socketConnection.RemoteEndPoint.ToString(), thr);
ShowMsg("客户端连接成功!" + socketConnection.RemoteEndPoint.ToString()); } } /// <summary> /// 接收客户端发来的数据的方法 /// </summary> public void ServeReceive(object ServeSocketPara)//疑问 { Socket ServeSocket = ServeSocketPara as Socket; while (true)//循环监听 { byte[] arrMsgReceive = new byte[1024 * 1024 * 2]; int length = ServeSocket.Receive(arrMsgReceive); string strMsgReceive = System.Text.Encoding.UTF8.GetString(arrMsgReceive, 0, length); ShowMsg(strMsgReceive); } } 疑问:第一个方法中的启动线程所传的套接字参数socketConnection和第二个方法中所传的参数ServeSocketPara是否一样,都是服务端监听到客户端所创建的套接字对象?
|