一、python中的网络编程。
1.需要使用的模块socket
socket是进程间的一种通信方式,可以实现不同主机间的数据传输。python中内置有socket模块,我们需要应用该模块的socket()方法创建一个对象。
2.代码
TCP服务端的创建
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import socket #导入socket模块
s = socket.socket() #初始化socket对象
s.bind(('127.0.0.1',1234)) #绑定端口为1234
s.listen(5) #等待客户端连接
ch = '成功链接至服务器。。。'
while True:
c,addr = s.accept() #客户端连接后,得到connect和address
print("链接的地址为:",addr)
c.send(ch.encode("UTF-8")) #向客户端发送消息"成功链接至服务器。。。"由于send函数不能发送中文所以编码发送
127.0.0.1是我们的本地ip,1234是随意设置的一个端口号。cmd中运行没有任何输出为正常表现。(ps:可能会出现端口占用问题,如果出现用 losf -i:1234 查看占用该端口号的进程,然后用 kill + PID 杀死进程!)
TCP客户端的创建
import socket
target_host = "127.0.0.1"
target_port = 1234
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect((target_host,target_port))
response = client.recv(4096) #接收数据4096表示接受数据的最大字节
print(response.decode("UTF-8")) #解码打印
AF_INET和SOCK_STREAM分别说明我们将使用IPv4地址和这将会是一个TCP客户端。我们将客户端和服务器端连接进行简单的数据交换。成功运行服务端后,另外打开一个终端运行客户端,下图为成功连接后的服务端和客户端。
成功啦,下篇创建多线程TCP服务器!