socket网络编程基础

socket

1.什么是套接字
    socket又叫套接字,指的是实现通信的两端,这个两端又分为服务器套接字和客户端套接字

2.服务器套接字
  Python中提供了一个socket模块来支持socket编程
  1)创建套接字对象
      socket(family=AF_INET, type=SOCK_STREAM)
      family - 设置ip类型
      type - 设置数据的传输方式:SOCK_STREAM - TCP,SOCK_DGRAM - UDP
  2)绑定ip和端口
      bind((ip地址,端口号))
      ip地址 - 字符串,服务器程序运行在那台计算机上ip地址就写哪台计算机上的ip
      端口号 - 整型:范围是065535,其中01024是著名端口,有自己的特殊意义一般不轻易用
  3)等待连接并且设置同一时间能够接收的请求数量listen()
  4)让服务器保持一直运行的状态while True 语句
  5)接受请求,套接字对象.sccept(),并返回地址和连接(会话)
  6)接受客户端发送的数据:连接(会话).recv() - 返回二进制数据
      recv(数据大小) - 接受数据并且设置一次性能够接受最大数据
补充:
  a.二进制转字符串
    二进制对象.decode(encoding='utf-8')
    str(二进制对象,encoding='utf-8')
  b.字符串转二进制
    字符串对象.encode()
  7)给客户端发送消息
  8)关闭连接

import socket

# 创建套接字对象   
server = socket.socket()
# 绑定ip和端口
server.bind(('10.7.181.121', 8070))
# 等待连接并且设置同一时间能够接收的请求数量
server.listen(870)
while True:
    print('开始监听')
    # 注意:当程序执行到accept()的时候,会停下来直到客户端
    # 接受请求
    connection, address= server.accept()
    print('接受到请求')
    print(connection, address)

    while True:
        # 接受客户端发送的数据
        recv_data = connection.recv(1024)
        print('接受:', recv_data.decode(encoding='utf-8'))
        # 给客户端发送消息
        mesege = 'HTTP/1.1 200 OK\r\n\r\n'+input('服务器:')
        connection.send(mesege.encode())
        # 关闭连接
    connection.close()
import socket

# 创建套接字对象
client = socket.socket()
# 发送请求
client.connect(('10.7.181.121', 8070))
while True:
    
    # 发送消息
    client.send(input('客户端:').encode())
    # 接受消息
    re_data = client.recv(1024)
    print(re_data.decode(encoding='utf-8'))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容