python3实现socket通信

目的:实现两台机器之间的通信。也就是说一个作为服务端(时刻监听接收数据),另一个作为客户端(发送数据)。

Python实现的过程个人理解:

  • 1.服务端开始监听。
  • 2.客户端发起连接请求。
  • 3.服务端收到连接请求信息。
  • 3.客户端发送数据。
  • 4.服务端收到客户端的数据,并返回给客户端自定义的数据。
  • 5.客户端收到被返回的数据。
  • 重复3-5…………
  • 6.客户端或者服务端关闭这次通信。
  • socket百度百科:https://baike.baidu.com/item/socket/281150。socket是python的默认模块。

socket_1serve.py 如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Jul 18 16:42:50 2018

@author: lihc
"""

#==============================================================================
# 1. TCP server端代码
# #!/usr/bin/env python
# #
# # -*- coding:utf-8 -*-
# #
#==============================================================================

from socket import *
from time import ctime

HOST = ''
PORT = 21567
BUFSIZE=1024
ADDR=(HOST, PORT)

tcpSrvSock=socket(AF_INET, SOCK_STREAM)
tcpSrvSock.bind(ADDR)
tcpSrvSock.listen(5)

while True:
    print ('waiting for connection ...',ctime())
    tcpCliSock,addr = tcpSrvSock.accept()
    print ('... connected from:', addr)
    while True:
        data=tcpCliSock.recv(BUFSIZE)
        print("receive from 2:",data)
        if not data:
            break
        tcpCliSock.send(str.encode('[%s] %s'%(ctime(), data)))
        print ([ctime()],':',data)
    
    tcpCliSock.close()
tcpSrvSock.close()

socket_2client.py如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Jul 18 16:46:33 2018

@author: lihc
"""

#==============================================================================
# 2. TCP client端代码
# #!/usr/bin/env python
# #
# # -*- coding:utf-8 -*-
# #
#==============================================================================

from socket import *

HOST='localhost'
PORT=21567
BUFSIZE=1024
ADDR=(HOST, PORT)

tcpCliSock=socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)

while True:
    data = input('>')
    print(type(data))
    data = str.encode(data)
    print(data)
    if not data:
        break
    tcpCliSock.send(data)
    data=tcpCliSock.recv(BUFSIZE)
    if not data:
        break
    print (data)

tcpCliSock.close()

python之socket编程

http://www.360doc.com/content/17/1005/06/36536556_692309867.shtml

Socket编程】Python实现简易Web服务器

Python之路【第六篇】:socket

让我们一起来构建一个 Web 服务器

telnet配置和telnet用法

服务器端的基本流程:

1.初始化socket()

2.使用bind()绑定ip和端口号

3 使用listen()监听消息

4.获取客户端的套接字地址accept()

5.使用recv()接收数据,send()发送数据与客户端进行交互

原文地址:https://www.cnblogs.com/andylhc/p/9340147.html