Home  >  Article  >  Backend Development  >  Introduction to how to implement simple socket communication using python

Introduction to how to implement simple socket communication using python

高洛峰
高洛峰Original
2017-03-16 15:36:432324browse

This article mainly introduces the method of python to implement simple socket communication, and analyzes the specific implementation techniques of socket communication server and client in the form of examples. Friends in need can refer to it

The example in this article describes how python implements simple socket communication. Share it with everyone for your reference, the details are as follows:

I just started to get in touch with python and implemented a helloworld program---a socket communication demo about the UDP protocol.

First of all, the implementation on the server side is as follows:


import socket, traceback
host = '' # Bind to all interfaces 
port = 51500
# Step1: 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Step2: 设置socket选项(可选)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Step3: 绑定到某一个端口
s.bind((host, port))
# Step4: 监听该端口上的连接
while 1:
  try:
    message, address = s.recvfrom(8192)
    print "Got data from ", address
    s.sendto("Data is received succeefully.", address)
  except (KeyboardInterrupt, SystemExit):
    print "raise"
    raise
  except :
    print "traceback"
    traceback.print_exc()

Among them, the host is set to empty, which means that it can be bound to all interfaces and address, no matter which client's request it is, as long as it is bound to the same port, the server can monitor the request.

In a tcp connection, listening to client requests requires the use of listen or acceptfunction, and a dedicated socket and remote connection.

Then make our client implementation:


import socket, sys
# Step1: 输入host和port信息
host = raw_input('please input host name: ')
textport = raw_input('please input textport: ')
# Step2: 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
  port = int(textport)
except ValueError:
  port = socket.getservbyname(textport, 'udp')
# Step3: 打开socket连接  
s.connect((host, port))
# Step4: 发送数据
print "Enter data to transmit: "
data = sys.stdin.readline().strip()
s.sendall(data)
# Step5: 接收服务器发过来的数据
print "Looking for replies; press Ctrl-C or Ctrl-Break to stop"
while 1:
  buf = s.recv(2048)
  if not len(buf):
    break
  sys.stdout.write(buf)

This example is so simple, it can be implemented in the same way as C language The version is almost the same. It seems that as long as you understand socketprogramming, the implementation in different languages ​​will be almost the same.

The above is the detailed content of Introduction to how to implement simple socket communication using python. 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