Python基础教程之tcp socket编程详解及简单实例

yipeiwu_com7年前Python基础

Python tcp socket编程详解

初学脚本语言Python,测试可用的tcp通讯程序:

服务器:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
 
import socket 
import threading 
import time 
 
def tcplink(sock, addr): 
  print('Accept new connection from %s:%s...' % addr); 
  sock.send(b'Welcome!!!'); 
  while True: 
    data = sock.recv(1024); 
    time.sleep(1); 
    if not data or data.decode('utf-8') == 'exit': 
       break; 
    sock.send(b'Hello, %s!' % data); 
  sock.close(); 
  print('Connection from %s:%s closed.' % addr); 
 
 
if __name__ == "__main__": 
 
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); 
 
  s.bind(('127.0.0.1', 9090)); 
  s.listen(8); #监听8个客户端; 
  print('waiting for connection...'); 
 
  while True: 
    sock, addr = s.accept(); 
    t = threading.Thread(target=tcplink, args=(sock,addr)); 
    t.start(); 

客户端:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
 
import socket 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); 
s.connect(('127.0.0.1', 9090)); 
print(s.recv(1024).decode('utf-8')); 
for data in [b'lk', b'aa', b'bb']: 
  s.send(data); 
  print(s.recv(1024).decode('utf-8')); 
s.send(b'exit'); 
s.close(); 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

Python使用ConfigParser模块操作配置文件的方法

本文实例讲述了Python使用ConfigParser模块操作配置文件的方法。分享给大家供大家参考,具体如下: 一、简介 用于生成和修改常见配置文档,当前模块的名称在 python 3....

python实现简易通讯录修改版

描述: 上一篇博客我写了一个简单的通讯录,但是还是觉得不够完美: 需要输入ID,虽然ID是主键,但是没有实现自增功能; 忘记加电话号码了; 如果插入用户名相同,则后续的查、改、删功能受到...

Python实现基于PIL和tesseract的验证码识别功能示例

Python实现基于PIL和tesseract的验证码识别功能示例

本文实例讲述了Python实现基于PIL和tesseract的验证码识别功能。分享给大家供大家参考,具体如下: 之前搞这个搞了一段时间,后面遇到了点小麻烦,导致识别率太低了,最多也就百分...

Python创建普通菜单示例【基于win32ui模块】

Python创建普通菜单示例【基于win32ui模块】

本文实例讲述了Python创建普通菜单的方法。分享给大家供大家参考,具体如下: 一、代码 # -*- coding:utf-8 -*- #! python3 import win32...

python与字符编码问题

python与字符编码问题

用python2的小伙伴肯定会遇到字符编码的问题。下面对编码问题做个简单的总结,希望对各位有些帮助。 故事零:编码的定义 我们从“SOS“(国际通用求助信号)开始,它的摩斯密码的编...