套接字与套接字编程

Posted 1220x

tags:

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

一、套接字

端口:标记不同的网络进程;使用16位比特位表示。

{ IP : Port} ----- 来表示某一主机的具体进程是什么 ----  套接字(socket)

套接字:是抽象概念,表示TCP连接的一端;通过套接字可以进行数据的发送或接收

TCP连接由两个套接字组成:

TCP = { Socket1  : Socket2 }

   = {{ IP:Port } { IP:Port }}

一个IP可以有多个套接字。

 

套接字编程:

技术图片

 

 二、套接字编程

         服务端(被动连接的一方)                                                  客户端(主动连接的一方)

技术图片

 

 

// 服务端

import socket


def server():
    # 创建socket
    s = socket.socket()
    host = "127.0.0.1"
    port = 6666
    # 绑定套接字
    s.bind((host, port))
    
    # 监听
    s.listen(5)

    while True:
        c, addr = s.accept()
        print("Connect Addr:", addr)
        c.send("Welcome to my course.")
        c.close()


if __name__ = ‘__main__‘:
    server()

  

// 客户端


import socket

def client(i):
    # 创建套接字
    s = socket.socket()
    # 连接套接字
    s.connect((‘127.0.0.1‘, 6666))

    print(‘Recv msg: %s, Client: %d‘, %(s.recv(1024), i))
    s.close()


if __name__ == ‘__main__‘:
    for i in range(10):
        client(i)

  

 

以上是关于套接字与套接字编程的主要内容,如果未能解决你的问题,请参考以下文章

线程同步与异步套接字编程

网络篇套接字编程

网络篇套接字编程

网络篇套接字编程

第九篇:网络编程补充与进程

Python套接字编程细节