网络编程socket编程

Posted q1ang

tags:

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

socket概念

socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递。 我们知道网络 通信 都 是基于 ip+port 方能定位到目标的具体机器上的具体服务,操作系统有0-65535个端口,每个端口都可以独立对外提供服务,如果 把一个公司比做一台电脑 ,那公司的总机号码就相当于ip地址, 每个员工的分机号就相当于端口, 你想找公司某个人,必须 先打电话到总机,然后再转分机 。

建立一个socket必须至少有2端, 一个服务端,一个客户端, 服务端被动等待并接收请求,客户端主动发起请求, 连接建立之后,双方可以互发数据。 

客户端:(示例)

import socket

client=socket.socket() #声明sockrt类型,同时生成socket链接对象
client.connect((\'localhost\',6969))
while True:
    msg=input(\'>>>\').strip()
    if len(msg)==0:    #空字节不能发送
        continue
    client.send(msg.encode(\'utf-8\'))
    data=client.recv(1024)

    print(\'recv:\',data.decode())

client.close()

服务端:

import socket

server=socket.socket()
server.bind((\'localhost\',6969))    #绑定要监听的端口

server.listen()    #监听

print(\'waiting..\')
conn, addr = server.accept()  # 等待
#conn就是客户端连接过来,而在服务端为其生成的一个连接实例

while True:

    # print(conn,addr)
    print(\'recving...\')

    data=conn.recv(1024)
    print(\'recv:\',data.decode())
    if not data:
        print(\'client has lost...\')
        break

    conn.send(data.upper())

server.close()

 

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

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

Linux系统编程—网络编程—socket代码实现

使用 Pygments 检测代码片段的编程语言

面向面试编程代码片段之GC

Python--网络编程-----socket代码实例