python3实现socket通信

本文介绍如何使用 Python 的 socket 模块实现两台机器间的 TCP 通信。包括服务端监听、客户端连接请求、数据发送与接收等核心步骤。通过具体代码示例展示了完整的通信流程。

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值