Python之socket

Python之socket编程初始(1)

Socket 通常被称之为套接字,已经成为Windows,mac等操作系统共同遵守的网络编程标准。可以用它通过网络来实现不同计算机之间的通信,也可以实现相同主机内的不同进程之间的通信。用socket进行网络开发需要了解服务器和客户端的socket原语。有如下原语:

  socket():建立socket对象,参数通常包括使用的传输层协议类型,网络层地址类型等。

  bind():进行绑定。在参数中要传入要绑定的IP地址和端口。

  listen():监听。在服务端使用,用来告诉系统监听bind绑定的IP地址和端口,监听客户端来的连接。参数中可指定最大允许排队的连接数量。

  connect():连接。在客户端使用,参数中需要指定服务器的地址和端口号。

  accept():接收连接。在服务端使用,从监听到的连接队列中取出一个,包装成一个新的socket对象,用它和请求来的客户端进行通信。

  send():发送数据。两端都可用,参数是要发送的数据,python3中支持bytes类型的数据。

  recv():接收数据。两端均可使用,参数中可指定接收数据的大小。

  close():关闭连接。

下面是具体的使用实例:客户端发送字符串,服务端将其转换成大写后返回给客户端。

  服务端: 

 #导入socket模块

import socket
#创建socket对象
server = socket.socket()
#绑定地址和端口
server.bind(('localhost',6969))
#监听连接
server.listen(5)
print("等待连接.....")
#循环接受连接
while True:
  #接受连接,返回连个对象
    conn,addr = server.accept()
    print("连接成功......")
    print(conn,addr)
  #循环接受收据
    while True:
      data = conn.recv(1024)
    #将接受的数据解码成str类型进行输出
      print("recv:",data.decode())
    #将数据转换成大写发送给客户端
      conn.send(data.upper())
#关闭连接
server.close()

  客户端:

import socket
client = socket.socket()
#连接服务端
client.connect(('localhost',6969))
#循环发送数据
while True:
  #用户输入字符串
    msg = input(">>:").strip()
  #发送数据
    client.send(msg.encode())
  #接受客户端发来的数据
    data = client.recv(1024)
  #打印数据
    print("recv:",data.decode())
#关闭连接
client.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值