当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

通信客户端的实现

发表于: 2014-07-16   作者:东之雪   来源:转载   浏览:
摘要: 客户端的实现   其实客户端的实现并是那么复杂,在所有的通信过程中,只要客户端和服务器按照一定的通信协议(可以是自定义啊)来收发读取消息就行~ 代码实现如下: 一:建立一个客户端的Socket:就这一行就行了 Socket socket = new Socket(ip, duankou); 其中ip是服务器的ip地址,duankou是服务器的的端口号。 二:得到与服务器之间的
客户端的实现
  其实客户端的实现并是那么复杂,在所有的通信过程中,只要客户端和服务器按照一定的通信协议(可以是自定义啊)来收发读取消息就行~
代码实现如下:

一:建立一个客户端的Socket:就这一行就行了
Socket socket = new Socket(ip, duankou);
其中ip是服务器的ip地址,duankou是服务器的的端口号。
二:得到与服务器之间的输入输出流;
InputStream input=socket.getInputStream();
OutputStream output=socket.getOutputStream();

我们还得有一个读取字节转化为字符串的方法定义如下方法即可?///读取每一行的输入的信息~~~
private String LineString(InputStream input) throws IOException{
////字节字符输出流~~和那个字节数组队列差不多~~当做队列吧
ByteArrayOutputStream baos=new ByteArrayOutputStream ();
while(true){
///读取每一个字节
int a=input.read();
///若为换行~~就跳出循环~~
if(a=='\n'){
break;
}
///把每个字节存到队列中
baos.write(a);
}
///把字符数组队列转化为字符数组
byte []bytes=baos.toByteArray();
//再把字符数组转化为字符串~~
String str=new String(bytes,"GBK");
return str;
}
甚至我们还可再写一个发送字符串的方法~是代码更具有模块化~有可读性~
public void send(String mess){
mess=mess+"\n";
try {
byte[] bytess = mess.getBytes("GBK");
System.out.println("服务器发送了消息");
output.write(bytess);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
其实这样就行了~然后我们就可以用输入流来读取从客户端发来的信息,使用输出流向服务器发送信息,但是存在的问题是我们必须得知道我们发送的和接收到的信息必须是什么~我们怎么来接收这些一大堆的字节~他们有表示什么含义呢,我们绝对不是什么都不知道的就一股气就接收到了这些全部啊~~所以我们得事先定制好一份协议来帮助我们怎样才能截取读取这些字节。

通信客户端的实现

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

推荐文章
编辑推荐
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号