java通信类_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java通信类

java通信类

 2014/7/16 21:53:54  hha9081214  程序员俱乐部  我要评论(0)
  • 摘要:java对于网络通信有专门的包来管理,在自制服务器中,我们可以用ServerSokect来建立服务器,用Socket来作为客户端连接服务器,通信当然要有传输数据,对于传输流,Socket专门有一个InputStream和OutputStream作为客户端和服务器之间传输的通道,在客户端用Socket的getOutputStream().write()来写入数据,在服务器端用Socket的getInputStream().read()来读取数据,在一般情况下,我们不会向服务器只发送一种数据
  • 标签:Java
java对于网络通信有专门的包来管理,在自制服务器中,我们可以用ServerSokect来建立服务器,用Socket来作为客户端连接服务器,通信当然要有传输数据,对于传输流,Socket专门有一个InputStream和OutputStream作为客户端和服务器之间传输的通道,在客户端用Socket的getOutputStream().write()来写入数据,在服务器端用Socket的getInputStream().read()来读取数据,在一般情况下,我们不会向服务器只发送一种数据,而是包含了多种数据类型的混合数据,我们就要有一个协议或者说破译数据的方法来将我们接收到的收据转换成我们需要的数据,协议就是指读取数据的方式比如在聊天室中,一个客户端发过来的信息一般包括了客户的的信息,发送的内容和时间,某些情况下还含有特殊的表情符号,这个我们就要协商好发送和接收的顺序,否则就会读到错误的信息,对于一般的普通对话内容,我们有两种方式来解决,1,发送数据之前先发送数据的长度,服务器会根据数据的长度相应的读取数据2.发送数据时加上结束标志,服务器端读到结束标志时就停止读入,但这样的有个问题,万一用户发送了含有结束标志的内容就可能造成提前结束而造成数据的混乱。InputStream.read()方法是只要无法读到下一个字符就会一直阻塞,所以建议用线程的的方式使用,同时由于会阻塞的特性,我们无须添加发送信息的标志,对此我们就能够进行简单的数据发送与读取,可以根据自己已经学过的窗口知识来将数据显示包装起来实现可视化聊天
上一篇: 关于线程 下一篇: 没有下一篇了!
发表评论
用户名: 匿名