网络编程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编程的主要内容,如果未能解决你的问题,请参考以下文章