TCP客户端开发

什么是客户端&服务端?

1.TCP网络应用程序开发分为客户端程序开发和服务端程序开发。
2. 主动发起建立连接请求的是客户端程序
3. 等待接受连接请求的是服务端程序

 

TCP客户端开发流程

 

TCP客户端与服务端启动、交换过程:

TCP客户端开发步骤:

  1.创建客户端套接字对象(买电话)
  2.和服务端套接字建立连接(打电话)
  3.发送数据(说话)
  4.接收数据(接听)
  5.关闭客户端套接字(挂电话)

 

涉及socket模块socket类的方法如下:

 

1.  创建socket对象的socket(AddressFamily, Type)方法: client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

2. 创建连接的connect方法

server_address = ('localhost', 8080)
client_socket.connect(server_address)

3. 发送数据send或sendall方法:

message = 'Hello, server!'
client_socket.sendall(message.encode('utf-8'))

4. 接收数据recv方法:

data = client_socket.recv(1024)

5. 关闭socket方法close: 

client_socket.close()

简易示例

复制代码
import socket

if __name__ == '__main__':
    # 1.创建客户端套接字对象
    tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 2.和服务端套接字建立连接
    '''
    目的信息server_ip = input(“请输入服务器ip:”)
    server_port = int(input(“请输入服务器port:”))
    连接服务器套接tcp_client_socket.connect((server_ip, server_port))
    '''
    tcp_client_socket.connect(("172.16.62.136", 8080))
    # 3.发送数据
    tcp_client_socket.send("nihaome".encode(encoding="utf-8"))
    # 4.接收数据 recv阻塞等待数据的到来
    recv_data = tcp_client_socket.recv(1024)
    print(recv_data.decode())
    # 5.关闭客户端套接字
    tcp_client_socket.close()
复制代码

 TCP服务端

 开发步骤

  1.创建服务端端套接字对象
  2.绑定IP地址和端口号
  3.设置监听
  4.等待接受客户端的连接请求
  5.接收数据
  6.发送数据
  7.关闭套接字

 

复制代码
 1 import socket  # 0. 导入socket模块
 2 
 3 
 4 if __name__ == '__main__':
 5     # 1.创建服务端套接字对象
 6     tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 7     # 2. 绑定IP地址和端口号
 8     # tcp_server_socket.bind(("172.16.62.136", 8888))
 9     # 如果bind中的参数第一个ip地址元素设置为"",默认为本机ip地址
10     tcp_server_socket.bind(("", 8888))
11     # 3.设置监听 128:代表服务端等待排队连接的最大数量
12     tcp_server_socket.listen(128)
13     # 4.等待接受客户端的连接请求 accept阻塞等待 返回一个用以和客户端通socket,客户端的地址
14     conn_socket, ip_port = tcp_server_socket.accept()
15     print("客户端地址:", ip_port)
16     # 5.接收数据
17     recv_data = conn_socket.recv(1024)
18     print("接收到的数据:", recv_data.decode())
19     # 6.发送数据
20     conn_socket.send("客户端你的数据我收到了".encode())
21     # 7.关闭套接字
22     conn_socket.close()
23     tcp_server_socket.close()
复制代码

 

 TCP开发注意事项

 

 

 
posted @   Allen_Hao  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示