网络编程分为服务端编程和客户端编程:
客户端编程:
- 创建socket对象
- 创建链接远程的服务端的ip和port、connect()方法
- 使用send、recv方法,方法发送数据
- 关闭连接释放资源
1、创建socket对象
host = "127.0.0.1" #服务端ip
port = 8880 #服务端端口
address = (host,port)
#创建socket
soc_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
函数 socket.socket 创建一个socket,返回socket的描述符赋值给soc_client,将在后面函数中使用。该函数带有两个参数:(Adress,type)
Address:这里用的是AF_INET其含义是 ipv4
type:用的是SOCK_STREAM(流式套接字,主要用于TCP协议)
2、创建链接远程的服务端的ip和port、connect()方法
#与服务器建立连接
soc_client.connect(address)
print("服务端连接成功")
用bind()方法,将定义好的由ip和端口号组成的元组作为参数传进去,从而绑定特定的ip和端口
3、 使用send、recv方法,方法发送数据
while 1:
data = input("请输入发送内容:")
#向服务端发送数据
soc_client.send(data.encode("utf-8"))
#从服务端接收数据
data_recv=soc_client.recv(1024).decode("utf-8")
print(data_recv)
进入死循环,等待内容输入。recv()方法中的参数是指数据长度,并且必须为1024的整数倍。在客户端与服务端上的数据交流都是以字节流的方式传输信息,所以必须用decode解码把字节流转换成字符串和encode编码把字符串转成字节流。
4、关闭连接释放资源
#关闭客户端套接字
soc_client.close()
客户端具体代码:
import socket
host = "127.0.0.1" #服务端ip
port = 8880 #服务端端口
address = (host,port)
try:
#创建socket
soc_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#与服务器建立连接
soc_client.connect(address)
print("服务端连接成功")
while 1:
data = input("请输入发送内容:")
#向服务端发送数据
soc_client.send(data.encode("utf-8"))
#从服务端接收数据
data_recv=soc_client.recv(1024).decode("utf-8")
print(data_recv)
#关闭客户端套接字
soc_client.close()
except Exception as ex:
print(ex)
服务端编程见上一篇:网络编程(TCP编程)的总结(python)----服务端篇_QY&ZY的博客-CSDN博客
ps:个人学习笔记,如有错误请大神指出