码迷,mamicode.com
首页 > 其他好文 > 详细

【网络编程】socket编程

时间:2018-05-29 20:33:56      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:div   类型   .so   客户端连接   实现   inpu   概念   对象   地址   

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编程

标签:div   类型   .so   客户端连接   实现   inpu   概念   对象   地址   

原文地址:https://www.cnblogs.com/q1ang/p/9107569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!