import socket,threading
def ip():
name=socket.gethostname()
ip=socket.gethostbyname(name)
return ip
def send(co):#发送消息
global flag
try:
while flag:
data=str(input()).encode("utf-8")
co.sendall(data)
except:
print("连接中断")
def receive(co):#接收消息
global flag
while flag:
data=co.recv(1024).decode("utf-8")
if data=="exit":
co.close()
print(data)
flag=False
else:
print(data)
def connect():
s=socket.socket()
s.bind((ip,8888))
s.listen(3)
co,add=s.accept()
print("连接成功")
s1=threading.Thread(target=send,args=(co,))#创建发送和接收消息两个线程
s2=threading.Thread(target=receive,args=(co,))
s1.start()
s2.start()
if __name__=="__main__":
flag=True
ip=ip()
print ("本机ip:"+ip)
connect()
四、客户端代码
import socket,threading
def send(s):#发送消息
global flag
while flag:
data=str(input())
s.sendall(data.encode("utf-8"))
if data=="exit":
s.close()
flag=False
def receive(s):#接收消息
global flag
try:
while flag:
data=s.recv(1024).decode("utf-8")
print(data)
except:
print("连接中断")
if __name__=="__main__":
ip=str(input("输入主机ip:"))
s=socket.socket()
s.connect((ip,8888))
print("连接成功")
flag=True
t1=threading.Thread(target=send,args=(s,))#创建发送和接收消息两个线程
t2=threading.Thread(target=receive,args=(s,))
t1.start()
t2.start()