java的socke client端接收xml报文的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的socke client端接收xml报文的问题相关的知识,希望对你有一定的参考价值。

服务器端是linux c写的

怎样把接收到的服务器端返回的xml报文 一次性放入一个字符串里或者写到一个xml文件里面

参考技术A 一次性读取是不可靠的,一般是定义一个字节数组,用一个循环读取。然后再把读到的数据加起来。主要代码:

InputStream in=null;//你的socket对应的接收流
ByteArrayOutputStream bo=new ByteArrayOutputStream();//用来暂时存放接收到的数据的字节数组流
byte b[]=new byte[100];

int length=0;
while((length=in.read(b))!=-1)

bo.write(b,0,length);

byte ba[]=bo.toByteArray();
System.out.println(new String(ba));//这里要注意编码,根据实际情况有所变化,不然可能会有乱码
bo.close();
in.close();本回答被提问者采纳

学习笔记-- Python网络编程

TCP编程-- server

 1 import socket, threading, time
 2 
 3 def dealClient(sock, addr):
 4     print(Accept new connection from %s:%s... % addr)
 5     sock.send(bHello, I am server!)  # 给client端发送数据
 6     while True:
 7         data = sock.recv(1024)  # 接收client发过来的数据
 8         time.sleep(1)
 9         if not data or data.decode(utf-8) == exit:
10             break
11         print(-->> %s ! % data.decode(utf-8))
12         sock.send((Loop_Msg: %s ! % data.decode(utf-8)).encode())   # 发送数据给client
13     sock.close()
14     print(Connection from %s:%s closed % addr)
15 
16 if __name__ == __main__:
17     # 创建socket并绑定IP
18     s = socket.socket()
19     s.bind((127.0.0.1, 9999))
20     s.listen()   # 启用监听
21     print(Waiting for connection...)
22     while True:
23         sock, addr = s.accept()  # 接收一个新的连接
24         t = threading.Thread(target = dealClient, args = (sock, addr))  #创建新的线程来处理TCP连接
25         t.start()

 

TCP编程-- client

1 import socket
2 
3 s = socket.socket()
4 s.connect((127.0.0.1, 9999))  # 建立连接
5 print(-->> + s.recv(1024).decode(utf-8)) # 接收消息
6 s.send(bHello, I am a client)
7 print(-->> + s.recv(1024).decode(utf-8))
8 s.send(bexit)  # 发送消息
9 s.close()

 

代码摘自 Python爬虫开发与项目实战--  机械工业出版社 

 

以上是关于java的socke client端接收xml报文的问题的主要内容,如果未能解决你的问题,请参考以下文章

socket编程server端程序接收client连接后accept套接字值为0正常吗?

socket编程server端程序接收client连接后accept套接字值为0正常吗?

java xml报文从客户端传到服务端解析的小程序

解决Linux 下server和client 通过TCP通讯:accept成功接收却报错的问题

8.swoole学习笔记--异步tcp客户端

Indy10 Tcp接收数据问题