`
菜刀兔兔兔
  • 浏览: 16759 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

有关通信___

 
阅读更多

 

       通信学了好多天了,也烦躁了好多天了。看着自己做出来的能聊天的那个小框框,顿时觉得有一种好欣慰的感觉。

 

        我先说说我理解的通信。

 

        我理解的通信就是:先创建一个服务器,就相当与是一个主机。然后客户端通过匹配ip地址和端口来连接。连接上之后,就根据自己给定的协议发送和接受消息。然后群聊就是,客户端按照协议给服务器发送了消息之后,服务器转发给所有的客户机。

 

         然后在线画图板的原理跟上面的聊天室是一样的。只不过传的不是各个客户端发送的消息,而是图片的内容。画图板需要自己定义 的协议有很多,比如说图的类型,还有颜色,还有发送的顺序。

 

         顺序是很重要的。比如说我发出消息的时候的顺序是 坐标x1,x2,y1,y2。但是在我接受数据的时候的顺序是 坐标x1,y1,x2,y2。那么画出来的直线就会变样了。还有最好服务端和客户端的画布大小保持一致。

  

          在写代码的时候,出现了很多问题。比如说空指针,相信大家都很痛恨java.lang.NullPointerException。出现这个问题的情况有很多。对我来说,出现这个问题最大的原因就是传参没穿好。不是没有传参,就是传参之后忘记在构造方法里面写this.a = a;等等……尤其是在写在线画板的时候,画布老是传不好。。

 

         胡哥经常说,通信其实最重要的就几行代码:

 //服务器端
 1、ServerSocket server = new ServerSocket(port);//创建
 2、client = server.accept();//等待客户来连接
 3、OutputStream os=client.getOutputStream();//获取输入输出流
 InputStream is=client.getInputStream();

 //客户端
 1、Socket client = new Socket(ip,port);//创建
 2、OutputStream os=client.getOutputStream();//获取输入输出流
 InputStream is=client.getInputStream();

 
 
          还有,在这次写通信这些内容的过程中,我觉得最有用的就是,System.out.println()语句;它在查找错误,调试程序等起了很大的作用,实在不愧为代码神器……

 

      

 

 

          

            下午的时候,对着自己的程序,理了理思路。然后画了下面两个图~~

 

 

  • 大小: 14.1 KB
  • 大小: 12.7 KB
  • 大小: 82.6 KB
  • 大小: 214.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics