一、socket(单链接)

1、socket:应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面;也有人将socket说成ip+port,ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序,ip地址是配置到网卡上的,而port是应用程序开启的,ip与port的绑定就标识了互联网中独一无二的一个应用程序;而程序的pid是同一台机器上不同进程或者线程的标识。

2、套接字:用于在同一台主机上多个应用程序之间的通讯。套接字有两种(或者称为有两个种族),分别是基于文件型(AF_UNIX)和基于网络型(AF_INET)。

3、基于TCP的套接字(类型一)

工作原理:先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束

Python学习笔记整理总结【网络编程】【线程/进程/协程/IO多路模型/select/poll/epoll/selector】

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # _author_soloLi
 4 import socket                         #导入socket模块
 5 ip_port = ("127.0.0.1",9999)          #设置服务器ip和端口
 6 server = socket.socket()              #创建server实例   //声明socket类型同时生成socket对象
 7 server.bind(ip_port)                  #套接字绑定ip与端口
 8 server.listen(5)                      #监听连接//允许5个客户端排队
 9 conn,addr = server.accept()           #等待客户端连接   // 客户端连接后,返回新的套接字与IP地址
10 client_data = conn.recv(1024)         #接收数据//把接收的数据实例化
11 #client_data = b'hello'
12 conn.sendall(client_data.upper())     #把数据发送到客户端  //upper() 字母变成大写
13 conn.close()                          #关闭连接
#TCP_server

相关文章:

  • 2021-06-27
  • 2022-12-23
  • 2022-12-23
  • 2021-09-01
  • 2022-02-09
  • 2021-10-13
  • 2022-12-23
  • 2021-08-16
猜你喜欢
  • 2022-12-23
  • 2021-08-05
  • 2022-02-13
  • 2022-12-23
  • 2022-12-23
  • 2021-05-20
  • 2022-01-27
相关资源
相似解决方案