#连续通讯,实际上为1:1的TCP通讯 *******************************************************************
#服务器端--------------------------------------------------------------------------
#coding=utf-8
#_author_='wxp'
import socket
sk.bind(("127.0.0.1", 9008))
sk.listen(5)
while True:
conn, addr = sk.accept()
while True:
accept_data = str(conn.recv(1024),
encoding="utf8")
print("".join(["接收内容:", accept_data, " 客户端口:", str(addr[1])]))
if accept_data == "byebye": # 如果接收到“byebye”则跳出循环结束和第一个客户端的通讯,开始与下一个客户端进行通讯
break
send_data = input("输入发送内p容:")
conn.sendall(bytes(send_data, encoding="utf8"))
conn.close() # 跳出循环时结束通讯
#客户端-------------------------------------------------------------------
#coding=utf-8 #_author_='wxp' import socket sk = socket.socket() sk.connect(("127.0.0.1", 9008)) # 主动初始化与服务器端的连接 while True: send_data = input("输入发送内容:") sk.sendall(bytes(send_data, encoding="utf8")) if send_data == "byebye": break accept_data = str(sk.recv(1024), encoding="utf8") print("".join(("接收内容:", accept_data))) sk.close()
#实现类似于1:N的UDP通讯================================================
#服务器端
#coding=utf-8
#_author_='wxp'
import socket
sk = socket.socket()
sk.bind(("127.0.0.1", 9008))
sk.listen(5)
dataCount=0
while True:
print('数据量: %04d' % dataCount)
print('监听数据....')
conn, addr = sk.accept() #阻塞,等待数据
accept_data = str(conn.recv(1024),encoding="utf8")
print("接收内容:"+accept_data)
print("客户地址:", str(addr))
send_data ='success'
conn.sendall(bytes(send_data, encoding="utf8"))
conn.close() # 跳出循环时结束通讯
print('接收结束')
dataCount+=1
print('')
#客户端
import socket sk = socket.socket() sk.connect(("127.0.0.1", 9008)) # 主动初始化与服务器端的连接 send_data = input("输入发送内容:") sk.sendall(bytes(send_data, encoding="utf8")) accept_data = str(sk.recv(1024), encoding="utf8") print("".join(("接收内容:", accept_data))) sk.close() print("发送结束")