Home >Backend Development >Python Tutorial >Simple usage of TCP sockets in Python network programming

Simple usage of TCP sockets in Python network programming

不言
不言Original
2018-04-09 14:37:071920browse

This article mainly introduces the simple usage of TCP sockets in Python network programming. I will share it with you here. Friends who need it can refer to it

The examples in this article describe the TCP sockets in Python network programming. Simple usage. I share it with you for your reference. The details are as follows:

I learned computer network last semester. Because I have not learned python before, and I know only a little about java, and C is troublesome to write, so I have never really implemented a TCP protocol. Interface programming.

I recently learned python, and using it to write sockets is very convenient and simple, so of course I have to give it a try.

The following is the simplest tcp program based on the code. The client inputs data and sends it to the server. The server adds time and returns it to the client


#!/usr/bin/python
'test TCP server'
from socket import *  #套接字所需要的模块
from time import ctime  #时间模块
HOST = ''  #主机名,为空,表示可以绑定在任何有效的地址上。
PORT = 21567  #随机选的可用端口
BUFSIZ = 1024  #发送数据的缓冲区
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)  #第一个参数是socket_family,此处用常用的AF_INET,第二个参数是流套接字,即创建的是tcp
tcpSerSock.bind(ADDR)  #套接字与地址绑定
tcpSerSock.listen(5)  #开始监听,参数表示允许的最大连接数
while True:
  print 'waiting for connection...'
  tcpCliSock, addr = tcpSerSock.accept()  #打开大门等待客人,accept返回一个元组(connection,address)。第一个元素是新的socket对象,服务器必须通过它与客户通信;第二个是客户的地址。
  print '...connected from:',addr
  while True:
    data = tcpCliSock.recv(BUFSIZ)  #洗耳恭听,把客人的话记录到data中
    if not data:  #客人话说完了,送客
      break
    tcpCliSock.send('[%s] %s' %(ctime(), data))  #发送当前时间,以及数据给客人
  tcpCliSock.close()  #送客,关闭与该客人通信的套接字
tcpSerSock.close()  #因为上面是死循环,此处不是必须的,只是提醒大家离开的时候务必要关门!


Two sockets are used above. The first tcpSerSock is called the welcome socket, and the second tcpCliSock is the socket that is actually responsible for communicating with the client, so The advantage is that one server can receive multiple guests at the same time.

The following is the client code, very simple:


#!/usr/bin/python
'test tcp client'
from socket import *
HOST = 'localhost'  #因为我是在同一台机器上运行,所以是localhost,不同主机的话,此处需要改成服务器地址
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)  #客户端只需要一个套接字
tcpCliSock.connect(ADDR)  #发起连接
while True:
  data = raw_input('>')
  tcpCliSock.send(data)  #发送数据
  if not data:
    break
  data = tcpCliSock.recv(BUFSIZ)  #接收数据
  print data
tcpCliSock.close()

Related recommendations:

Python web crawler Introduction to the basic writing methods of functions

Python network programming

Summary of functions commonly used in python network programming

The above is the detailed content of Simple usage of TCP sockets in Python network programming. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn