首页 > 其他 > 详细

网络编程[第一篇]基于tcp协议的套接字编程

时间:2019-07-24 21:34:37      阅读:126      评论:0      收藏:0      [点我收藏+]

将服务端-客户端的连接比作双方打电话的过程

 

一.客户端

主动的一方:

客户端实例化一个socket对象--> 主动像服务端发送连接请求--> (服务端接受请求后即可进行数据传输--> )请求成功后发送信息--> (服务端收到数据信息后反馈一个数据信息给客户端,确认操作成功--> )关闭进程

####

——手机通话过程

买手机——>打电话——>说话(发信息)——>听对面说话(收信息)——>沟通完成后挂电话

import socket

#买手机  --  套接字家族 | 端口协议
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#直接打电话  连接服务端  --  给一个地址- ip | 端口号
phone.connect((127.0.0.1,1000))

#接通电话后发信息
phone.send(hello.encode(utf-8))

#接收反馈信息  指定一次接收的量
data = phone.recv(100)
print(信息为: ,data)

#关机
phone.close()

 

二.服务端

被动的一方:

实例化一个socket对象--> *设置一个监听地址(提供一台电脑的唯一标识—ip+端口号)*-->*设置最大监听数量*-->

接受客户端来的一个连接请求--> 连接成功后接收客户端发来的信息--> 发送反馈信息给客户端--> 关闭该连接请求(可能不止一个连接请求)--> 没有连接请求后关闭进程

####

——手机通话过程

买电话——>*买一张电话卡(唯一一台设备)【提供给客户端一个地址来连接服务端】*——>*开机(处于监听状态,有一个最大监听数量)*——>

接一个电话——>接收到对方的信息——>回复一个信息——>打完电话后挂断电话——>关机(不再监听)

import socket

#买手机  --  套接字家族 | 端口协议
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#买电话卡  --  监听一个地址- ip | 端口号
phone.bind((127.0.0.1,1000))

#开机  指定监听的最大数量   **backlog -- 半连接池**所有的电话均在其中等待
phone.listen(5)

#等电话-接电话  电话接通后会得到(return sock, addr)   accept() -> (socket object, address info)
#tcp链接  |  客户端地址?
link, addr = phone.accept()    #    **从backlog中拿出一个电话接通**

#电话接通后接收信息  指定一次接收信息的数量
data = link.recv(100)
print(信息为: ,data)

#接收到信息后,反馈给client端一个信息,以告诉他已成功接收
link.send(data)

#完成一切操作后关掉link,再关机
link.close()
phone.close()

 

网络编程[第一篇]基于tcp协议的套接字编程

原文:https://www.cnblogs.com/xxp1624/p/11240789.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!