简单服务器和客户端的连接

###服务器

# -*- coding: utf-8 -*-
import socket
import threading
from docutils.parsers.rst.directives import encoding
#进行封装。第一个:服务器之间网络通信,第二个:流式socket,for TCP
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  
ip_port=('192.168.1.35',985)    #设置服务器IP
s.bind(ip_port)                 #服务器绑定IP
s.listen(5)                     #设置监听位数
con,address=s.accept()          #服务器进行接收数据
print('%s have connected' % address[0])
con.send('hello i am python'.encode())

isok=True
def rec(con):
    global isok
    while isok:
        recv_data=str(con.recv(1024),encoding='utf-8')
        if recv_data=='exit':
            isok=False
        print(recv_data)
thrd=threading.Thread(target=rec,args=(con,))
thrd.start()
while isok:
    send_d=input('server>')
    con.sendall(bytes(send_d,encoding('utf-8')))
    if send_d=='exit':
        isok=False
        
s.close()

##客户端

# -*- coding: utf-8 -*-
import socket
import threading


cl=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip_port=('192.168.1.35',985)
cl.connect(ip_port)

isok=True
def rec(cl):
    global isok
    while isok:
        t=cl.recv(1024).decode('utf-8')
        if t=='exit':
            isok=False
        print(t)

th2=threading.Thread(target=rec,args=(cl,))
th2.start()


while isok:
    t=input("other>")
    cl.send(t.encode('utf-8'))
    if t=='exit':
        isok=False
        
cl.close()

简单服务器和客户端的连接_第1张图片

简单服务器和客户端的连接_第2张图片

你可能感兴趣的:(Linux个人学习笔记)