Java和C#之间SOCKET通信的问题
作者:网络转载 发布时间:[ 2013/7/10 11:30:49 ] 推荐标签:
c)向客户端发送文本数据的代码
outWriter.println(strInfo);
outWriter.flush();
d)向客户端发送文件的代码
// 发送文件长度
File file = new File(filePath);
byte[] outBytes = new byte[1024];
int count = 0;
FileInputStream fileInput = new FileInputStream(file);
ByteArrayOutputStream ow = new ByteArrayOutputStream();
while ((count = fileInput.read(outBytes)) > 0) {
MyLogManager.DebugLog(log, null, String.valueOf(count));
ow.write(outBytes, 0, count);
}
outPut.write(ow.toByteArray());
//outWriter.print(ow);//这个在JAVA客户端时可以正常响应,而在C#客户端中无法响应。
//outWriter.flush();
二、客户端(使用java和c#两个版本)
1).发送请求信息(字符串格式)
对于JAVA来说:直接使用PrintWrite类的println()方法即可。
而对于C#来说:需要使用socket.Send(System.Text.Encoding.ASCII.GetBytes(msg + " "));需要在请求信息msg后面加上一个行结束标志符。
2).接收数据(文本或者文件)
2-1).java客户端接收数据
a)java接收文本的代码示例:
******代码示例*****
log.info("开始连接服务器");
InetAddress address = InetAddress.getByName(AppConfig.IP);//193.100.100.143);
SocketChannel sc = SocketChannel.open(new InetSocketAddress(address,AppConfig.PORT));
log.info("服务器连接成功");
//连接成功 初始化流
InputStream inputStream = Channels.newInputStream(sc);
InputStreamReader is = new InputStreamReader(inputStream,"GBK");
in = new BufferedReader(is);
log.info("接收服务器的数据");
String responseLine="";
while ((responseLine = in.readLine()) != null)
{
//用readLine接收数据是,会自动抛弃换行符,如果为了保持数据的格式,需要在这里加上一个换行标识符
returnStr += responseLine+"
";
}
log.info("接收服务器的数据完毕");
**************
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11