一、TCP 通信 

  • 服务端
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# server_tcp.py import socket so = socket.socket()
so.bind(('127.0.0.1', 8080))
so.listen() while True:
conn, addr = so.accept() while True:
ret = conn.recv(1024).decode('utf-8')
print(ret)
if ret == 'bye':
break
msg = input("请输入<<< ")
if msg == 'bye':
conn.send(b'bye')
break conn.send(bytes(msg, encoding='utf-8')) conn.close() so.close()
  • 客户端
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# client_tcp.py import socket so = socket.socket()
so.connect(('127.0.0.1', 8080)) while True:
msg = input("请输入<<< ")
if msg == 'bye':
so.send(b'bye')
break
so.send(bytes(msg, encoding='utf-8'))
ret = so.recv(1024).decode('utf-8')
print(ret)
if ret == 'bye':
break

 二、UDP通信

  • 服务端
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# server_udp.py import socket so = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
so.bind(('127.0.0.1', 8080)) while True:
ret, addr = so.recvfrom(1024)
print(ret.decode('utf-8'), addr) msg = input("请输入<<< ")
so.sendto(bytes(msg, encoding='utf-8'), addr) so.close()
  • 客户端
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# client_udp.py import socket so = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
ip_port = ('127.0.0.1', 8080) while True:
msg = input("请输入<<< ")
if msg == 'bye':
so.sendto(b'bye', ip_port)
break
so.sendto(bytes(msg, encoding='utf-8'), ip_port)
ret, addr = so.recvfrom(1024)
print(ret.decode('utf-8'), addr)
if ret == 'bye':
break so.close()

Python Socket通信例子的更多相关文章

  1. Python Socket通信原理

    [Python之旅]第五篇(一):Python Socket通信原理   python Socket 通信理论 socket例子 摘要:  只要和网络服务涉及的,就离不开Socket以及Socket编 ...

  2. python - socket通信笔记

    参考: 通过编写聊天程序来熟悉python中多线程和socket的用法:https://www.cnblogs.com/mingjiatang/p/4905395.html python socket ...

  3. Python socket 通信功能简介

    常用的地址家族AF_UNIX:基于文件,实现同一主机不同进程之间的通信AF_INET:基于网络,适用于IPv4AF_INET6:基于网络,使用于IPv6 常见的连接类型SOCK_STREAM:即TCP ...

  4. Python Socket通信黏包问题分析及解决方法

    参考:http://www.cnblogs.com/Eva-J/articles/8244551.html#_label5 1.黏包的表现(以客户端远程操作服务端命令为例) 注:只有在TCP协议通信的 ...

  5. Python socket通信之FTP

    Python中利用socket进行server端和client端通信是网络编程的基础,是最简单的传输范例. (懂网络的请自动跳过这一部分) 首先,要想通信,必须建立连接,建立连接的过程,需要clien ...

  6. java的Socket通信例子及关于java.net.SocketException: Socket is closed错误

    今天写socket数据相互通信的时候,碰到一个及其蛋疼的错误.单向传输数据的时候server与client是没有问题的,但是两个都有输入输出操作的时候就出现了这个问题 java.net.SocketE ...

  7. 树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)(一)

    本文由树莓派爱好者ITJoker 编辑,转载请注明出处.本人也有新浪博客同样是树莓派爱好者ITJoker 所需材料:树莓派2B或者2B以上,L2985n驱动板,若干排线,电池及电池盒,usb无线网卡( ...

  8. Socket通信例子

    Server端 using System; using System.Collections.Generic; using System.ComponentModel; using System.Da ...

  9. Python Socket 通信

    参考: http://www.cnblogs.com/alex3714/articles/5830365.html Socket A network socket is an endpoint of ...

随机推荐

  1. SharePoint2013与SharePoint2016语言切换原理以及如何使用代码进行语言切换

    1.前言 在SharePoint 2010版本,在首页面直接"选择显示语言"的菜单(如下图所示),如下图 : 在sharepoint2013和sharepoint2016并非如此. ...

  2. 3D Slicer 4.7.0 VS 2010 Compile 编译

    花了将近一周的时间的,终于在VS2010成功的编译了最新版的3D Slicer 4.7.0,感觉快要崩溃了.Slicer用了20多个外部的库,全都要一起编译,完整编译一次起码要七八个小时,光VS的Ou ...

  3. win怎么设置最快捷的下滑关机

    win怎么设置最快捷的下滑关机 1.在C:\Windows\System32下找到SlideToShutDown.exe文件发送一份到桌面快捷方式 2.右键此快捷方式--属性--更换图表--更换一个自 ...

  4. {Django基础六之ORM中的锁和事务}一 锁 二 事务

    Django基础六之ORM中的锁和事务 本节目录 一 锁 二 事务 一 锁 行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在 ...

  5. 查看线程的进程id

    import os from threading import Thread def f1(n): print(n) print('%d号线程的id是%s'%(n,os.getpid())) if _ ...

  6. AutoFac Ioc依赖注入容器

    本文原著:牛毅  原文路径 http://niuyi.github.io/blog/2012/04/06/autofac-by-unit-test/ 理解IOC容器请看下图: 没有使用IOC容器的情况 ...

  7. [No0000DB]C# FtpClientHelper Ftp客户端上传下载重命名 类封装

    using System; using System.Diagnostics; using System.IO; using System.Text; using Shared; namespace ...

  8. Vue 超快速学习

    Vue 超快速学习 基础知识: 1.vue的生命周期: beforeCreate/created. beforeMount/mounted. beforeUpdate/updated. beforeD ...

  9. -bash: fork: Cannot allocate memory

    今天遇到服务器无法SSH,VNC操作命令提示fork:cannot allocate memory free查看内存还有(注意,命令可能要多敲几次才会出来) 查看最大进程数 sysctl kernel ...

  10. postgre

    切换用户:su postgres 启动:psql 查看有哪些数据库: \l 切换到数据库air: \c air 列出数据库中所有表: \d 列出指定表的所有字段信息: \d+ dag 或者 \d da ...