C/S架构:

客户端/服务端

套接字:

通信端点,在进行通讯之前先创建套接字

socket模块:

socket()函数创建套接字,语法规则:

  1. socket(socket family,socket_type,protocol=0)
  2. #示例:创建TCP/IP套接字
  3. socket(socket.AF INET,socket.SOCK_STREAM)

服务器端套接字对象的方法:

bind()——绑定地址(ip+端口)到套接字
listen()——开启Tcp监听
accept()——被动接收TCP客户端连接

客户端套接字对象方法:

connect()——主动初始化TCP服务器连接
connect_ex()——功能同上+出错时返回错误代码,而不是抛出异常

流程:

  1. from socket import *
  2. import time
  3. HOST=""
  4. PORT=2333
  5. BUFSIZE=1024
  6. ADDR=(HOST,PORT)
  7. tcpServer=socket(AF_INET,SOCK_STREAM)
  8. tcpServer.bind(ADDR)
  9. tcpServer.listen(5)
  10. while True:
  11. print ("waitting for connection....")
  12. tcpClient,addr=tcpServer.accept()
  13. print("connection from:",addr)
  14. while True:
  15. data=tcpClient.recv(BUFSIZE)
  16. if not data:
  17. break
  18. print("[%s] %s"%(time.ctime(),data))
  19. tcpClient.send("[%s] %s"%(time.ctime(),data))
  20. tcpServer.close()
  21. tcpClient.close()