1. 程式人生 > 實用技巧 >10. 第八章 軟體包管理

10. 第八章 軟體包管理

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

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)
        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)
            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()