这是我写的服务器代码
import socket,os
from multiprocessing import Process
def haha(yong):
while True:
data=yong.recv(100)
if data.decode()!='q':
yong.send(data)
else:
yong.send('q'.encode())
yong.close()
break
if __name__ == '__main__':
service = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
service.bind(('127.0.0.1', 6))
service.listen(4)
print(os.getpid())
while True:
yong,add=service.accept()
jaiyou=Process(target=haha,args=(yong,))
jaiyou.start()
service.close()
这是我写的客户机代码
import socket,os
quest1=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
quest1.connect(('127.0.0.1',6))
while True:
quest1.send(input().encode())
data=quest1.recv(100).decode()
if data=='q':
break;
else:
print(os.getpid())
continue
quest1.close()
当多个客户机 连接一个服务器的时候,每个进程ID号都是不同的,这我可以理解,多进程嘛
但是,当我把服务器代码中的进程process换成thread线程的时候。多个客户机的进程Id还不同,这就奇怪了,线程不应该都在一个进程Id里吗