当前位置:   article > 正文

利用Java和Python建立TCP连接_python 和java 链接

python 和java 链接

Python作为Server(服务端)

  1. host = "192.168.xx.xxx" #服务端的IP地址
  2. port = 2027            #选定一个没有被使用的端口号用来通信
  3. print('localhost ip :' + host)
  4. #创建socket对象,当使用tcp时使用socket.SOCK_STREAM该参数,流式socket
  5. tcpServer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  6. tcpServer.bind((host, port))#将套接字与IP、port进行绑定
  7. tcpServer.listen(5) #开始监听,等待客户端连接
  8. #接受连接请求并返回一个新的套接字,client返回的是一个新的套接字对象,addr返回的是客户端地址
  9. (client, addr) = tcpServer.accept()
  10. print('accept the client!')
  11. while True:            #开循环一直等待接收客户端数据
  12. data = client.recv(1024) #接受数据,参数为指定接受的最大数据量
  13. data = bytes.decode(data) #对数据进行解码,默认方式为UTF-8
  14. print(data)

socket()返回的套接字是用于监听和接受客户端的连接请求的,accept()返回的套接字是用来发送和接受数据的。因为上述没有用setblocking()函数设置阻塞状态,所以默认情况下accept()函数在没有收到连接请求的时候会一直阻塞等待连接请求,只有收到了一个连接请求程序才会往下执行,同样,recv()函数在没有收到数据的时候也会进入阻塞状态。

若不知道选用的端口是否被占用,可以在cmd中输入 netstat -ano|findstr "端口号" 命令来查看

若想关闭占用该端口的进程,可以利用 taskkill /pid 564 /f 命令关闭进程

Java作为client(客户端)

  1. public class TcpSend {
  2. public static void main(String []args) {
  3. String ip = "192.168.43.3";    //服务器端IP地址
  4. int port = 2027;               //端口号
  5. Socket s = null;               //创建Socket对象
  6. try{
  7. s = new Socket(ip, port);  //绑定IP和port
  8. s.setSendBufferSize(1000); //设置发送缓存区大小
  9.             //发送数据给服务端
  10. BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
  11. out.write("Request");
  12. out.flush();
  13. s.close();
  14. }
  15. catch(Exception e){
  16. e.printStackTrace();
  17. }
  18. }
  19. }
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号