一、设计思路
1.创建主体框架:将客户端和服务器端的界面设计好,然后设计按钮触发事件。
2.创建服务器:确定好服务器ip地址和端口号,然后进行TcpClient编程,设计服务器监听、发送信息、接收信息的方法,并利用委托机制实时更新界面信息。
3.创建客户端TCP连接:利用服务器的ip地址和端口号进行TcpClient编程,然后设计连接服务器,发送信息,接收信息的方法,同理利用委托机制实时更新界面信息。随机生成一个端口号,并把端口号通过Tcp连接传给服务器,以便于发给其他客户端通过Udp进行对话。
4.创建客户端UDP:利用随机生成的端口号判断是否为可用端口,然后进行UdpClient编程,监听其他客户端发来的信息,并通过服务器传来的端口号通过UdpClient编程与其他客户端进行对话。
5.异常捕捉及错误处理:必须服务器开启式,客户端才能连接,否则会报连接失败的错误信息;发送信息时必须选择用户,否则会报出选择用户进行对话的提醒。
二、问题及解决方案
遇到的新问题是按键问题,keyPress,keyUp,keyDown等动作响应时应该做什么动作的问题,实验中主要是一按enter键就直接发送信息给其他客户端,但是在这个按的过程中有响应先后的问题,如果是用keyPress的话聊天信息里面会多出一个回车换行,用keyUp也是,只有keyDown时才响应发送信息的话,才不会出现多出一个回车换行的问题,而keyUp则来响应清除发送文本区域的内容。