【网络编程】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()

猜你喜欢

转载自www.cnblogs.com/q1ang/p/9107569.html