python网络编程之TCP编程

Posted 黄小鑫Celine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python网络编程之TCP编程相关的知识,希望对你有一定的参考价值。

TCP编程

模拟客户端和服务器端进行通信。其中要素为ip地址和端口。

客户端:

  1. 建立socket对象,并且设置为TCP模式
  2. 用connect()方法设置端口和ip地址,需要传入一个set。
  3. 可以进行接受和发送的操作
  4. 关闭socket连接

服务器端:

因为一个服务器打开一个固定端口进行监听,但是可能响应不同的客户端,所以可以定义不同的进程序进行处理。

  1. 建立socket对象
  2. 绑定IP地址和端口
  3. 监听
  4. 利用进程响应不同的客户端请求,可以发送和接受数据等操作
  5. 关闭socket连接

实例:

客户端:

import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((127.0.0.1,9999))
print(s.recv(1024).decode(utf-8))
for i in [bMichael, bTracy, bSarah]:
    s.send(i)
    print(s.recv(1024).decode(utf-8))
s.send(bexit)
s.close()

服务器端:

import socket
import threading
import time
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((127.0.0.1, 9999))
s.listen(5)
print(Waiting for connection...)
def tcplink(sock,addr):
    print(Accept new connection from %s:%s... % addr)
    sock.send(bWelcome!)
    while True:
        data=sock.recv(1024)
        time.sleep(1)
        if not data or data.decode(utf-8)==exit:
            break
        sock.send(bhello %s% data.decode(utf-8).encode(utf-8))
        # print(data.decode(‘utf-8‘))
        # print(data.decode(‘utf-8‘).encode(‘utf-8‘))
    sock.close()
    print(Connection from %s:%s closed. % addr)

while True:
    sock,addr=s.accept()
    t=threading.Thread(target=tcplink,args=(sock,addr))
    t.start()

参考教程:廖雪峰的python教程:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319556588648dd1fb0047a34d0c945ee33e8f4c90cc000

以上是关于python网络编程之TCP编程的主要内容,如果未能解决你的问题,请参考以下文章

Python TCP 协议网络编程《四》

python之网络编程 --- TCP编程

python网络编程之TCP编程

Python TCP 协议网络编程《三》

Python之UDP编程

python网络并发编程之tcp,udp基本语法