tcp 通讯问题

lx76939412 2012-06-11 01:31:56
服务端接受客户端发送的数据receiveData ,经过一系列处理返回字符串responseMsg,如何将responseMsg字符串发送给客户端,outputStream.write是以字符数组方式发送的,能不能以字符串形式发送?

public void start(int port) {
ServerSocket serveSocket = null;
Socket clientSocket = null;
BufferedInputStream input = null;
byte[] buffer = new byte[1024];
ByteArrayOutputStream bops = new ByteArrayOutputStream(); // 请求数据存放对象

try {
serveSocket = new ServerSocket(port); // 在指定端口建立一个连接

System.out.println("服务器开始监听:");
while (true) {
clientSocket = serveSocket.accept(); // 收到一个信息,得到一个clientSocket

InputStream inputStream = clientSocket.getInputStream(); // 数据缓冲区
OutputStream outputStream = clientSocket.getOutputStream();
int count = 0; // 每个缓冲区的实际数据长度
try {
input = new BufferedInputStream(inputStream);
count = input.read(buffer);
bops.write(buffer, 0, count);


} catch (Exception e) {
e.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (Exception f) {
f.printStackTrace();
}
}
}


String receiveData = bops.toString();


System.out.println("收到如下报文: " + receiveData);
String responseMsg = do(receiveData);
responseMsg = "1234567890";

try{
outputStream.write(responseMsg.getBytes());
}
catch(Exception e)
{
e.printStackTrace();
}
outputStream.close();
bops.reset();
inputStream.close();
clientSocket.close();

} else {
outputStream.close();
GeneralLog.error(COMM_MODULE, "接收的数据为null或空串!");
bops.reset();
inputStream.close();
clientSocket.close();
}


}
} catch (Exception e) {
e.printStackTrace();
log.error(e);
}
}
...全文
146 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lx76939412 2012-06-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
输入流和输出流肯定都是字节流啊,将字符串转化为字节数组通过String.getBytes()或者
String.getBytes(encoding)就可以啊,也不麻烦啊,如果上层调用的是字符串,你将socket通讯封装成一个方法就可以啊
[/Quote]

麻烦帮我封装下,谢谢啊,客户端是C程序写的
淡定的峰哥 2012-06-11
  • 打赏
  • 举报
回复
输入流和输出流肯定都是字节流啊,将字符串转化为字节数组通过String.getBytes()或者
String.getBytes(encoding)就可以啊,也不麻烦啊,如果上层调用的是字符串,你将socket通讯封装成一个方法就可以啊

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧