java的socke client端接收xml报文的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的socke client端接收xml报文的问题相关的知识,希望对你有一定的参考价值。
服务器端是linux c写的
怎样把接收到的服务器端返回的xml报文 一次性放入一个字符串里或者写到一个xml文件里面
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(b‘Hello, 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(b‘Hello, I am a client‘) 7 print(‘-->>‘ + s.recv(1024).decode(‘utf-8‘)) 8 s.send(b‘exit‘) # 发送消息 9 s.close()
代码摘自 Python爬虫开发与项目实战-- 机械工业出版社
以上是关于java的socke client端接收xml报文的问题的主要内容,如果未能解决你的问题,请参考以下文章
socket编程server端程序接收client连接后accept套接字值为0正常吗?
socket编程server端程序接收client连接后accept套接字值为0正常吗?