python socket 客户端 接收端 并通过一个服务端中转

接收端 9102端口接收中转服务端信息

import socket

HOST = ''                 # Symbolic name meaning all available interfaces
PORT = 9102             # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(5)

# while 1:
#conn.sendall(bytes("done",'utf-8'))
while 1:
    conn, addr = s.accept()
    print('Connected by', addr)
    while 1:
        data = conn.recv(1024)
        if not data:
            break
        print(data)
       # break

    conn.close()
    # if not data: break
    # conn.sendall(data)
s.close()

中转服务端
两个socket 一个服务接收9100端口
一个发送到9102端口

import socket
from time import ctime
HOST = ''                 # Symbolic name meaning all available interfaces
PORT = 9100             # Arbitrary non-privileged port
tcps = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcps.bind((HOST, PORT))
tcps.listen(5)

# while 1:
#conn.sendall(bytes("done",'utf-8'))
#data = conn.recv(1024)


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1' , 9102))
#s.sendall('Hello, world')
#data = s.recv(1024)
#print(data)
while 1:
    conn, addr = tcps.accept()
    print('Connected by', addr)
    while 1:
        data=conn.recv(1024)
        if not data:
            break
        #print(conn.recv(1024))
        s.send(data )
        #print("----")
        conn.send(('[%s] %s' % (ctime(), data)).encode())
      #  break

    conn.close()
    # if not data: break
    # conn.sendall(data)
s.close()
tcps.close()

客户端

import socket

HOST = '127.0.0.1'    # The remote host
PORT = 9100              # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# create a raw socket and bind it to the public interface
#s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)


s.connect((HOST, PORT))
#s.sendall('Hello, world')
#data = s.recv(1024)
#print(data)
while 1:
    data = input('>')
    #data = str(data)
    if not data:
         break
    s.send(data.encode())
    #s.send(bytes("hell",'utf-8') )
    data1 = s.recv(1024)
    print(data1.decode('utf-8'))
    print("----")
s.close()

client


>a
[Fri Jul 30 15:00:40 2021] b'a'
---
>

接收端

Connected by ('127.0.0.1', 56244)
b'a'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值