>  기사  >  백엔드 개발  >  Python 네트워크 프로그래밍에서 TCP 소켓의 간단한 사용

Python 네트워크 프로그래밍에서 TCP 소켓의 간단한 사용

不言
不言원래의
2018-04-09 14:37:071842검색

이 글은 주로 Python 네트워크 프로그래밍에서 TCP 소켓의 간단한 사용법을 소개합니다. 여기에서 공유하겠습니다. 필요한 친구는 참고할 수 있습니다.

이 글에서는 Python 네트워크 프로그래밍에서 TCP 소켓의 간단한 사용법을 예제와 함께 설명합니다. 참고로 자세한 내용은 다음과 같습니다.

저는 지난 학기에 컴퓨터 네트워크를 배웠습니다. 이전에 Python을 배운 적이 없어서 Java에 대해서는 조금만 알고 C는 귀찮습니다. 쓰기 때문에 실제로 TCP 소켓 프로그래밍을 구현한 적이 없습니다.

최근에 Python을 배웠는데, 이를 사용하여 소켓을 작성하는 것이 매우 편리하고 간단하므로 당연히 시도해 봐야 합니다.

다음은 코드를 기반으로 한 가장 간단한 tcp 프로그램에 대한 소개입니다. 클라이언트가 데이터를 입력하여 서버로 보냅니다. 서버는 시간을 추가하여 클라이언트에 반환합니다.


#!/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()  #因为上面是死循环,此处不是必须的,只是提醒大家离开的时候务必要关门!


두 개의 소켓이 있습니다. 위에서 사용된 첫 번째 tcpSerSock은 환영 소켓이라고 하며 두 번째 tcpCliSock은 실제로 클라이언트와의 통신을 담당하는 소켓입니다. 이 방법의 장점은 서버가 동시에 여러 게스트를 받을 수 있다는 것입니다.

다음은 매우 간단한 클라이언트 코드입니다.


#!/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()

관련 권장 사항:

Python 웹 크롤러 기능의 기본 작성 방법 소개 ,

일반적으로 사용되는 Python 네트워크 프로그래밍

Python 네트워크 프로그래밍에서 함수 요약이 도착했습니다

위 내용은 Python 네트워크 프로그래밍에서 TCP 소켓의 간단한 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.