zoukankan      html  css  js  c++  java
  • socket创建TCP服务端和客户端

    看情况选择相对应的套接字
    *面向连接的传输--tcp协议--可靠的--流式套接字(SOCK_STREAM)
    *面向无连接的传输--udp协议--不可靠的--数据报套接字(SOCK_DGRAM)

    在liunx中  telnet ip port 可以当成临时客服端

    服务端示例:
    
    创建服务端示例:
    from socket import *
    
    #创建套接字(参数:地址族类型,套接字类型,选定子协议类型)
    sockfd = socket(AF_INET,SOCK_STREAM,proto = 0)
    
    #绑定地址(功能:绑定地址,参数(ip,port))
    sockfd.bind(("0.0.0.0",9099))
    
    #设置监听(参数:监听队列的大小)
    sockfd.listen(5)
    
    #等待接收连接(会进行阻塞,当客户端连接就往下运行)
    #返回值:connfd 新的套接字,用于和客户端通信,add 连接客户端的地址(ip,port)
    print("Waiting for connect...")
    connfd,addr = sockfd.accept()
    print("Connect from",addr)
    
    #收发消息(没接收到消息也会进行阻塞)
    #参数:一次接收消息的大小字节(bytes格式)
    data = connfd.recv(1024)
    print(data)
    
    #要发送的内容(bytes格式),返回实际发送的字节数
    n = connfd.send(b"Receive your message")
    print(n)
    #关闭套接字
    connfd.close()
    sockfd.close()
    
    
    客户端示例:
    from socket import *
    
    #创建套接字
    sockfd = socket(AF_INET,SOCK_STREAM)
    
    #发起连接
    server_addr = ("127.0.0.1",9099)
    sockfd.connect(server_addr)
    
    #收发消息
    data = input("发送>>")
    sockfd.send(data.encode())  #将字符串转换成二进制
    
    data = sockfd.recv(1024)
    print("接收到:",data.decode())
    
    #关闭字节套
    sockfd.close()  
  • 相关阅读:
    String.Intern原来可以减少占用内存···
    一些话···
    javascript 闭包和原型 (转载)
    20100610
    jQuery选择头像
    20100611
    新的一天又开始了····
    13种常用按钮、文本框、表单等CSS样式
    心悸···
    我对她说,你能不能换件衣服?换种心情?换种脾气?她说,可以,换个人就行了···
  • 原文地址:https://www.cnblogs.com/zengsf/p/9595241.html
Copyright © 2011-2022 走看看