一台做客户端,一台做服务端。
服务端:
import os
import socket
import time
from test_pip import pip_test
def server_socket():
while True:
ip = ''
port = 12345 # 端口号可以自取
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((ip, port))
s.listen(1)
print('listen at port:', port)
conn, addr = s.accept()
print('connected by ', addr)
while True:
from_client_msg = conn.recv(1024)
if from_client_msg == 'exit':
break
else:
data = from_client_msg.decode('gbk')
print('接收数据:', data)
# a = os.system(data)
# print(a)
now_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
send_data = conn.send(
(str(now_time) + "服务端已收到:" + from_client_msg.decode('gbk') + ',返回内容:other').encode('gbk'))
conn.close()
s.close()
if __name__ == '__main__':
"""永远开启服务"""
while True:
try:
server_socket()
except Exception as e:
continue
客户端:
import socket
import sys
def socket_client_fun():
IP = '127.0.0.1' # 填写服务器端的IP地址
port = 12345 # 端口号必须与服务器端一致
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((IP, port))
except Exception as e:
print('server not find or not open')
sys.exit()
while True:
trigger = input("请输入发送给服务器的内容:")
s.sendall(trigger.encode('gbk'))
data = s.recv(1024)
data = data.decode('gbk')
print('recieved:', data)
if trigger == 'exit': # 发送exit结束连接
break
s.close()
if __name__ == '__main__':
socket_client_fun()