一、tcp客户端
使用流程:
- 创建套接字
- connect链接tcp服务器
命令:
socket对象.connect((服务器ip,服务器port))
3.收/发数据recv(接收数据的大小)/send(发送数据)
4.关闭套接字
import socket
def main():
# 创建socekt对象
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 链接服务器
tcp_socket.connect(('192.168.0.108', 1024))
# 发送数据
tcp_socket.send('hello'.encode('gbk'))
# 接收数据
recv_data = tcp_socket.recv(1024).decode('gbk')
print(recv_data)
# 关闭套接字
tcp_socket.close()
if __name__ == '__main__':
main()
二、tcp服务器
使用流程
1、创建套接字
2、bind绑定ip和port
3、listen是套接字变为可被动链接
套接字对象.listen(允许排队等待的链接数目)
4、accept等待客户端的链接,返回一个元组,需要拆包为套接字对象和地址
套接字对象.accept()
5、recv/send 收发数据
6、关闭套接字
import socket
def main():
# 创建套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定port
tcp_socket.bind(('', 7890))
# 设置套接字为被动连接
tcp_socket.listen(5)
# 等待客户端的链接
new_socket, new_addr = tcp_socket.accept()
# 接收客户端发送过来的数据
print(new_socket.recv(1024).decode('gbk'))
# 发送数据给客户端
new_socket.send('hello'.encode('gbk'))
# 关闭客户端套接字
new_socket.close()
# 关闭套接字
tcp_socket.close()
if __name__ == '__main__':
main()