soket通信

Posted wutanghua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了soket通信相关的知识,希望对你有一定的参考价值。

import  socket

#socket采用cs结构,client and Server  B/S browser and server
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    #family 族
        # socket.AF_INET     ip
        # socket.AF_INET6    ipv6
        # socket.AF_UNIX     unix系统间数据传输使用的协议
    #type 类型
        # socket.SOCK_STREAM  TCP
        # socket.SOCK_DGRAM   UDP
    #被动阻塞式接收
        #被动,不主动发起通信,只是等待通信请求
        #阻塞,当发起通信的时候,只有完成一次通信才可以进入下一次
    #通信三种类型
        # 单工     通信只有一条信道,通信双方身份不可逆   BB机
        # 半双工   通信只有一条信道,通信双方身份可逆     对讲机
        # 全双工   通信只有多条信道,通信双方身份可逆     电话
sock.bind(("",8000))
    #双元素元组
        # 元素一 是ip  如果为空,绑定当前所有ip
       # 元素二 是端口,0-65535个端口,通常前1000个时系统预留端口
               # 3306 mysql
               # 22 ssh
               # 80 http
               # 224 https
               # 8000 酷狗音乐
sock.listen(5) #监听
    #队列长度
con,add = sock.accept() #接收
    #con 一个新的socket对象
    #add 客户端的身份 ip和端口
while True:
    content = con.recv(512)
    #单次接收最大长度是512字节
    print(content.decode())
    send_data = input(">>>").encode()
    con.send(send_data)

sock.close()

 

#coding:utf-8

import socket

sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

sock.connect(("10.10.21.131",8000))
# sock.connect(("10.10.21.131",8000))

while True:
    send_data = input(">>>").encode()
    sock.send(send_data)
    content = sock.recv(512)
    print(content.decode())
sock.close()

 

以上是关于soket通信的主要内容,如果未能解决你的问题,请参考以下文章

java soket通信总结 bio nio aio的区别和总结

Linux之网络管理网络监控工具

soket的使用笔记(个人随意笔记)

Spark组件间通信

golang做服务器,C#(unity)作为客户端,Socket通信问题

[go]socket编程