通信客户端的实现

[color=blue]客户端的实现
其实客户端的实现并是那么复杂,在所有的通信过程中,只要客户端和服务器按照一定的通信协议(可以是自定义啊)来收发读取消息就行~
代码实现如下:[/color]
一:建立一个客户端的Socket:就这一行就行了
Socket socket = new Socket(ip, duankou);
其中ip是服务器的ip地址,duankou是服务器的的端口号。
二:得到与服务器之间的输入输出流;
InputStream input=socket.getInputStream();
OutputStream output=socket.getOutputStream();

[color=blue]我们还得有一个读取字节转化为字符串的方法定义如下方法即可?[/color]///读取每一行的输入的信息~~~
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;
}
[color=blue]甚至我们还可再写一个发送字符串的方法~是代码更具有模块化~有可读性~[/color]
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();
}
}
[color=blue]其实这样就行了~然后我们就可以用输入流来读取从客户端发来的信息,使用输出流向服务器发送信息,但是存在的问题是我们必须得知道我们发送的和接收到的信息必须是什么~我们怎么来接收这些一大堆的字节~他们有表示什么含义呢,我们绝对不是什么都不知道的就一股气就接收到了这些全部啊~~所以我们得事先定制好一份协议来帮助我们怎样才能截取读取这些字节。[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值