python网络编程之socket

众所周知的tcp/ip协议为我们提供了计算机之间网络通信的标准。操作系统的tcp/ip软件组件为我们提供了基于tcp/ip协议的通信。操作系统为了开发者方便直接调用tcp/ip组件,为我们提供了API,它就是socket。python自带socket模块。
主动发起连接的计算机我们称之为 客户端。被动接受的称之为服务端。我们设想一层楼,有很多的房间,这些房间有一条公共的电话线路,每个房间有很多的可供安装电话单机的孔,每个孔对应一个电话号码。现在位于A房间的张三要给位于B房间的李四打电话。首先在B房间李四要接上一部电话单机,假设其接电话的孔号码为4000。然后张三开始连接李四,张三随便选择自己一个空闲的孔安装上电话单机,然后拨号码,要指定是B房间,而且要指定号码4000,这样电话就可以接通了,张三李四就可以通话了。
房间相当于主机,电话孔相当于端口。A是客户端,B是服务端。服务端只需要指定自己的电话单机装在哪个孔上,就可以等着电话了。当然为了避免骚扰也可以指定只有A房间的电话才能打进来。客户端要指定对方的房间和孔的号码。
服务端:

import socket
host=''
port=3000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
while 1:
    c,addr=s.accept()
    c.makefile('rw').write('hello,i am zhangyuanbin')
    c.close()

客户端:

import socket
port=3000
host='192.168.56.1'
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
while 1:
    buf=s.recv(2048)
    if not len(buf):
        break
    print(buf.decode('utf-8'))

就可以进行通信了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值