TCP通信

socket.socket(family,type,proto)

1、family:

  • AF_INET //IPV4
  • AF_INET6 //IPV6
  • AF_UNIX //UNIX下的地址

2、type

  • SOCK_STREAM //TCP套接字
  • SOCK_DGRAM //UDP套接字

3、proto 一般情况下不设置,默认为0

TCP通信服务端

import socket
import sys


class ServerSocker(object):
    def __init__(self,bind_ip,bind_port):
        self.bind_ip = bind_ip
        self.bind_port = int(bind_port)
        
    def run(self):
        s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)      //定义一个TCP的套接字
        s.bind((self.bind_ip,self.bind_port))      //绑定套接字地址
        s.listen(3)      //监听数量
        client,addr = s.accept()      //返回套接字
        print('Connecting from %s : %d' %(addr[0],addr[1]))      //打印客户端地址和端口
        while True:
            result = client.recv(1024)      //接受1024个字节的消息
            print('Recieved Message:' + result.decode('utf-8'),end = '')      //打印消息
            send_message = input('请输入发过去的消息:')      
            if send_message == 'quit':      //退出程序
                sys.exit()
            client.send(send_message.encode('utf-8'))      //发送消息
            
def main():
    s = ServerSocker('0.0.0.0',sys.argv[1])
    s.run()
            
            
if __name__ == '__main__':
    main()
posted @ 2020-12-03 12:22  lnterpreter  阅读(52)  评论(0编辑  收藏  举报