zoukankan      html  css  js  c++  java
  • 5-tcp套接字服务端编程

    import socket

    1.创建套接字

    sockfd= socket.socket(socket_family = AF_INIT,socket_type=SOCK_STREAM,proto)

    功能:创建套接字

    参数: socket_family:选择地址族类型 AF_INET

          socket_type: 套接字类型 SOCK_STREAM 流式

                  SOCK_DGRAM 数据报

       proto:选择子协议类型  通常为0

    返回值:返回套接字对象

    2.绑定服务端地址

    sockfd.bind(addr)

    功能:绑定IP地址

    参数:元祖(IP,port)

     localhost  可以被本机用 127.0.0.1

    127.0.0.1   同上

    192.168.205.127  可以被别人用192.168.205.127访问

    0.0.0.0   可以被别人用192.168.205.127访问

          也可被自己用 127.0.0.1访问 

    3.设置监听套接字

    sockfd.listen(n)

    功能:将套接字设置为监听套接字,创建监听队列。

    参数:n表示监听队列大小。

    *一个监听套接字可以连接多个客户端套接字。

    4.等待处理客户端连接请求

    connfd,addr= sockfd,addept()

    功能:阻塞等待处理客户端连接。

    返回值:connfd 客户端连接套接字

        addr 连接的客户端地址 

    *阻塞函数:程序运行的过程中遇到阻塞函数则暂停运行,知道某种阻塞条件达成再继续运行。

    5.消息收发

    connfd.recv(buffersize)

    功能:接受对应客户端消息

    参数:一次最多接受多少字节

    返回值:接收到的内容。

    *没有消息则会阻塞。

    n = connfd.send(data)

    功能:发送消息给对应客户端

    参数:要发送的内容,必须是bytes格式。

    返回值:返回实际发送消息的大小。

    6.关闭套接字

    #tcp_server.py
    from socket import *
    #创建套接字
    sockfd = socket(AM_INIT,SOCK_STREAM)
    #创建地址
    socket.bind((0.0.0.0),8888)
    
    #设置监听
    sockfd.listen(5)
    
    #等待接受链接
    print("waiting")
    connfd,addr = sockfd,accept()
    print('connect from',addr)
    
    #收发消息
    data = connfd,recv(1024)
    print(data)
    n = connfd.send(b'receive your message')
    
    #关闭套接字
    connfd.close()
    sockfd.close()

      

  • 相关阅读:
    经典算法排序——希尔排序
    查找算法总结
    Anddroid HttpService
    经典排序算法——直接选择排序
    [置顶] 获取Android手机上音乐播放器状态
    经典排序算法——归并排序
    Android锁屏未读短信,未接电话
    经典排序算法——冒泡排序
    经典排序算法——快速排序
    linux下同时存在当静态库和动态库同名
  • 原文地址:https://www.cnblogs.com/Chamberlain/p/11639108.html
Copyright © 2011-2022 走看看