python socket_Python版Socket(套接字)应用-客户端和服务器

背景知识视频教程

开始7天Python编程 - 国外课栈​viadean.com
0c4e416f0715df56d2812c8cfa3e6a4e.png
面向初学者的完整Python教程 - 国外课栈​viadean.com
7ce8002577b76b2ee4282a757c3629bc.png

套接字可以配置为充当服务器并侦听传入的消息,或者作为客户端连接到其他应用程序。连接TCP / IP套接字的两端后,将进行双向通信。

回显服务器

该示例程序基于标准库文档中的示例程序,接收传入的消息并将它们回显给发送者。首先创建一个TCP / IP套接字。

import socket
import sys

# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

然后,bind()用于将套接字与服务器地址相关联。在这种情况下,地址是localhost,引用当前服务器,端口号是10000。

# Bind the socket to the port
server_address = ('localhost', 10000)
print >>sys.stderr, 'starting up on %s port %s' % server_address
sock.bind(server_address)

调用listen()将套接字置于服务器模式,然后accept()等待传入连接。

# Listen for incoming connections
sock.listen(1)

while True:
    # Wait for a connection
    print >>sys.stderr, 'waiting for a connection'
    connection, client_address = sock.accept()

accept()返回服务器与客户端之间的开放连接以及客户端的地址。 该连接实际上是另一个端口(由内核分配)上的另一个套接字。 使用recv()从连接中读取数据,并使用sendall()进行传输。

  try:
        print >>sys.stderr, 'connection from', client_address

  # Receive the data in small chunks and retransmit it
  while True:
            data = connection.recv(16)
            print >>sys.stderr, 'received "%s"' % data
  if data:
                print >>sys.stderr, 'sending data back to the client'
                connection.sendall(data)
  else:
                print >>sys.stderr, 'no more data from', client_address
  break
 
  finally:
  # Clean up the connection
        connection.close()

与客户端的通信完成后,需要使用close()清除连接。此示例使用try:finally块来确保始终调用close(),即使发生错误也是如此。

回显客户端

简单客户端连接

选择侦听地址

多线程服务器

视频演示+文本内容

  • 发送和接受数据
  • 缓冲和流数据
  • 使用套接字发送和接收Python对象
  • 在Python中使用套接字创建聊天应用程序服务器
  • 在Python中使用套接字创建聊天应用程序客户端
Python版Socket(套接字)应用-客户端和服务器 - 国外课栈​viadean.com
21cdc17a98ee154e5d66c3452129a9bd.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值