这几天一直在捣腾一个聊天程序,服务端用listener监听,客户端利用client连接服务端并发送注册、登录等信息,我把客户端的注册和登录放在同一个窗口,客户端发送注册和登录时用TcpClient client=new TcpClient(ipendpoint) 对client进行本地IP和本地发送端口绑定,发送完毕后client.close().。
服务端根据
TcpClient tcp=new TcpClient()
tcp = listener.AcceptTcpClient();
然后利用
(IPEndPoint)tcp.Client.RemoteEndPoint() 得到客户端的发送IP和端口号,
接下来利用得到的客户端IP,客户端发送端口号向客户端发送反馈信息。
我在“注册—登录”窗口时可以连接服务器,并发送注册、登录信息成功,登录成功后进入好友列表窗口,这个时候再去绑定登录时的发送端口,并向服务器端发送“请求好友列表”信息时,当程序运行client.connect(serverip,serverport) 时,就会出现错误提示: (通常一个套接字/地址/端口只能使用一次。serverip:serverport)
该错误提示服务器的端口号正被使用,服务器确实一直在监听serverport,既然注册、登录时能连接成功,现在也只是让客户端去重新connect服务器却不行,是不是新打开的窗口造成的问题?“好友列表”这个窗体是在监听子线程里使用this.begininvoke(delegate)显示的。请哪位指点一二,谢谢了。
我已经崩溃过了,这个问题你解决了没?
等30秒试试