socket相关

socket居然翻译成“套接字”,这是谁翻译的,“插座”不好吗?又形象又好理解。

 

客户端向服务器request:
 

1、建立客户端:分两种:http协议:    socket.socket()

                                          https协议:  sll.wrap_socket(socket.socket())   (需要用sll协议包裹)
 
2、建立连接:socket.socket().connect()
 
3、获取本地ip和端口:socket.socket().getsockname()
 
                                    注意:若一个套接字与INADDR_ANY捆绑,也就是说该套接字可以用任意主机的地址,此时除 非调用connect()或accept()来连接,否则getsockname()将不会返回主机IP地址的任何 信息。除非套接字被连接,WINDOWS套接字应用程序不应                                                 假设IP地址会从 INADDR_ANY变成其他地址。这是因为对于多个主机环境下,除非套接字被连接,否 则该套接字所用的IP地址是不可知的。
 
4、发送http协议:‘GET / HTTP/1.1\r\nhost:{HOST}\r\n\r\n’(protocol+host+port+path),先encode编码,然后send()
 
5、接收字段:socket.socket().recv(1023) 
                     #接收1023字节,因为recv必须传入参数,可通过循环取完。
 
 

服务器与客户端socket交互:

posted @ 2019-07-02 10:40  Mana66ccff  阅读(91)  评论(0)    收藏  举报