div id="myTime">

UDP协议下的socket

server端

import socket
from socket import SOL_SOCKET,SO_REUSEADDR
sk = socket.socket()
# sk.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) 
sk.bind(('127.0.0.1',8090))
sk.listen()
conn,addr = sk.accept()  #在这阻塞,等待客户端过来连接
while True:
    ret = conn.recv(1024)  #接收消息  在这还是要阻塞,等待收消息
    ret = ret.decode('utf-8')  #字节类型转换为字符串中文
    print(ret)
    if ret == 'bye':        #如果接到的消息为bye,退出
        break
    msg = input('服务端>>')  #服务端发消息
    conn.send(msg.encode('utf-8'))
    if msg == 'bye':
        break

conn.close()
sk.close()

client端
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',8090)) #连接服务端

while True:
    msg = input('客户端>>>')  #input阻塞,等待输入内容
    sk.send(msg.encode('utf-8'))
    if msg == 'bye':
        break
    ret = sk.recv(1024)
    ret = ret.decode('utf-8')
    print(ret)
    if ret == 'bye':
        break
sk.close()
注释:这种模式下的话,服务端可以同时连接多个客户端但是和第一个客户端进行沟通时候,其余的客户端口是接收不到信息的.
而且客户端与服务端断开后会进行报错.需要设立一个标志位,当服务端传输什么样的信息会进行断开连接,后续的客户端才可以进行得到服务器的反馈
posted @ 2018-11-27 15:56  lowen107  阅读(176)  评论(0编辑  收藏  举报