Python TCP 网络编程

Python  TCP网络编程,流程和其它语言没有区别,但更简洁:

 

#服务器端 server.py

# 导入 socket、sys 模块
import socket
import sys
import _thread




# 创建 socket 对象
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 获取本地主机名
host = socket.gethostname()

#端口
port = 9999

# 绑定端口号
serversocket.bind((host, port))

print("在主机{} 端口{} 上监听!".format(host,port))

# 设置最大连接数,超过后排队
serversocket.listen(5)


# 线程函数,接收每个连接的消息
def RecvFun( s ):

   while  True:
      msg = s.recv(1024)
      print ("客户端%d说: %s" % ( s.fileno(), msg  ))

      s.send(msg)


while True:
    # 建立客户端连接
    clientsocket,addr = serversocket.accept()

    print("客户端%d 来自 %s已连接!" % ( clientsocket.fileno(), str(addr)))


    # 创建线程
    try:
       _thread.start_new_thread( RecvFun, (clientsocket,) )  #这里必须是元组,所以加,
    except Exception as e:
                                  print('repr(e):\t', repr(e))

#客户端client.py

# 导入 socket、sys 模块
import socket
import sys

# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

# 获取本地主机名
host = socket.gethostname() 

# 设置端口号
port = 9999

# 连接服务器,指定主机和端口
s.connect((host, port))

while True:

    str = input("输入发送内容:")
    #发送消息
    s.send(str.encode('utf-8'))
    # 接收小于 1024 字节的数据
    msg = s.recv(1024)
    print("服务器: {}".format( msg.decode('utf-8') ))

s.close()

先运行服务器,然后运行两个客户端,打印效果:

Python TCP 网络编程_第1张图片

 

下图是两个客户端:

Python TCP 网络编程_第2张图片

Python TCP 网络编程_第3张图片

你可能感兴趣的:(python,tcp,网络编程,Python)