3、socket循環連接收發消息

服務端

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/3/2 15:12

# @Author : CaiChangEn

# @Software: PyCharm

from socket import *

IP_PORT=('0.0.0.0',8080)

BACKLOG=5

BUFFER_SIZE=1024

TCP_Server=socket(AF_INET,SOCK_STREAM)

TCP_Server.bind(IP_PORT)

TCP_Server.listen(BACKLOG)

Conn,Addr=TCP_Server.accept() # 雖然BACKLOG有五個,但是現在只有一個accept說明執行接收一個conn連接,那麼此時就需要做循環連接

print('雙向連接是:',Conn)

print('客戶端地址是:',Addr)

while True:

cli_msg=Conn.recv(BUFFER_SIZE)

print('客戶端說: %s' %cli_msg.decode('utf-8'))

msg=input('請輸入信息: ').encode('utf-8')

Conn.send(msg)

Conn.close()

TCP_Server.close()

客戶端

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/3/2 15:12

# @Author : CaiChangEn

# @Software: PyCharm

from socket import *

SERVER_IP_PORT=('127.0.0.1',8080)

BACKLOG=5

BUFFER_SIZE=1024

TCP_Server=socket(AF_INET,SOCK_STREAM)

TCP_Server.connect(SERVER_IP_PORT)

while True:

msg=input('請輸入信息: ').strip()

if not msg:continue # 如果為空那麼就continue

TCP_Server.send(msg.encode('utf-8'))

ser_msg=TCP_Server.recv(BUFFER_SIZE)

print('服務端說: %s' %ser_msg.decode('utf-8'))

TCP_Server.close()

結果

#服務端

雙向連接是: <socket.socket>

客戶端地址是: ('127.0.0.1', 53615)

客戶端說: hi my name is cce

請輸入信息: hi my name is socket

客戶端說: nice to meet you

請輸入信息: nice to meet you,too

#客戶端

請輸入信息: hi my name is cce

服務端說: hi my name is socket

請輸入信息: nice to meet you

服務端說: nice to meet you,too


分享到:


相關文章: