一、服务端

#!/usr/bin/python
# -*- coding: UTF-8 -*- import socket
import sys
from thread import * HOST = '127.0.0.1' # Symbolic name meaning all available interfaces
PORT = 8888 # Arbitrary non-privileged port s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created' #Bind socket to local host and port
try:
s.bind((HOST, PORT))
except socket.error , msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit() print 'Socket bind complete' #Start listening on socket
s.listen(10)
print 'Socket now listening' #Function for handling connections. This will be used to create threads
def clientthread(conn):
#Sending message to connected client
conn.send('Welcome to the server. Type something and hit enter\n') #send only takes string #infinite loop so that function do not terminate and thread do not end.
while True: #Receiving from client
data = conn.recv(1024)
reply = '收到信息:' + data print reply reply = "my name is 徐芳波 "
if not data:
break conn.sendall(reply) #came out of loop
conn.close() #now keep talking with the client
while 1:
#wait to accept a connection - blocking call
conn, addr = s.accept()
print 'Connected with ' + addr[0] + ':' + str(addr[1]) #start new thread takes 1st argument as a function name to be run, second is the tuple of arguments to the function.
start_new_thread(clientthread ,(conn,)) s.close()

二、客户端

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:client.py import socket # 导入 socket 模块
import time s = socket.socket() # 创建 socket 对象
host = '127.0.0.1' # 获取本地主机名
port = 8888 # 设置端口好 s.connect((host, port)) while True : s.send("my name is 开心 " )
data = s.recv(1024)
print '收到信息:'+data
time.sleep(1) s.close()

三、运行服务端

root@xushi:~/ai/python# python netsharp.pigeon.py
Socket created
Socket bind complete
Socket now listening
Connected with 127.0.0.1:40114
收到信息:my name is 开心
收到信息:my name is 开心
收到信息:my name is 开心
收到信息:my name is 开心
收到信息:my name is 开心
收到信息:my name is 开心
收到信息:my name is 开心
收到信息:my name is 开心
收到信息:my name is 开心
收到信息:my name is 开心

四、运行客户端

root@xushi:~/ai/python# python netsharp.pigeon.client.py
收到信息:Welcome to the server. Type something and hit enter 收到信息:my name is 徐芳波
收到信息:my name is 徐芳波
收到信息:my name is 徐芳波
收到信息:my name is 徐芳波
收到信息:my name is 徐芳波
收到信息:my name is 徐芳波
收到信息:my name is 徐芳波
收到信息:my name is 徐芳波
收到信息:my name is 徐芳波
收到信息:my name is 徐芳波

python网络socket编程的更多相关文章

  1. 转:Python 的 Socket 编程教程

    这是用来快速学习 Python Socket 套接字编程的指南和教程.Python 的 Socket 编程跟 C 语言很像. Python 官方关于 Socket 的函数请看 http://docs. ...

  2. Python 3 socket 编程

    Python 3 socket编程 一 客户端/服务器架构 互联网中处处是C/S架构 1.C/S结构,即Client/Server(客户端/服务器)结构 2.在互联网中处处可见c/s架构 比如说浏览器 ...

  3. 最基础的Python的socket编程入门教程

    最基础的Python的socket编程入门教程 本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在 ...

  4. python之socket编程(一)

    socket之前我们先来熟悉回忆几个知识点. OSI七层模型 OSI(Open System Interconnection)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标 ...

  5. Python:socket编程教程

    ocket是基于C/S架构的,也就是说进行socket网络编程,通常需要编写两个py文件,一个服务端,一个客户端. 首先,导入Python中的socket模块: import socket Pytho ...

  6. UDP协议网络Socket编程(java实现C/S通信案例)

    我的博客园:https://www.cnblogs.com/chenzhenhong/p/13825286.html 我的CSDN博客:https://blog.csdn.net/Charzous/a ...

  7. Java:基于TCP协议网络socket编程(实现C/S通信)

    目录 一.前言:TCP原理简介 二.Socket编程通信 三.TCP服务器端(具体代码) 四.TCP客户端(具体代码) 五.通信效果演示 六."创意"机器人:价值一个亿的AI核心代 ...

  8. java多线程实现TCP网络Socket编程(C/S通信)

    目录 开篇必知必会 一.多线程技术 二.实现多线程接收 1.单线程版本 2.多线程版本 三.多线程与进程的关系 四.客户端界面完整代码 五.多线程通信对比 最后 开篇必知必会 在前一篇<Java ...

  9. python网络-Socket之TCP编程(26)

    一.TCP简介 1.TCP介绍 TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议. TC ...

随机推荐

  1. Using Service Workers

    [Using Service Workers] 1.This is an experimental technology Because this technology's specification ...

  2. Jenkins+svn+ant+tomcat持续集成

    转载自 http://www.cnblogs.com/liuhaixia/p/7267473.html Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+ ...

  3. shiro 入门

    参考文章: https://www.cnblogs.com/maofa/p/6407102.html https://www.cnblogs.com/learnhow/p/9747134.html h ...

  4. ss源码学习--事件处理

    为了方便区分,以下分别使用local,server,remote代表ss客户端,ss服务端,以及ss客户端请求访问的远程主机. 在shadowsocks中,无论对于local还是server,都需要建 ...

  5. jquery使用FormData提交数据

    在jquery中,使用ajax提交表单数据. FormData可以很方便地获取到表单中的所有数据. 注意: ajax中的data参数为FormData类型时,contentType就不要设置成appl ...

  6. Linux下查看编辑二进制文件:hexedit神器

    1.如果没有hexedit安装hexedit:2.打开终端输入hexedit filename;3.打开即可用键盘输入字符,用方向键移动,ctrl+w保存,ctrl+x退出:4.详细用法 man he ...

  7. WAS 忘记密码

    一.重置密码 1.首先关闭was,ps –ef|grep java 查看java进程号,然后kill -9 XXXX杀掉进程即可.或者使用命令./stopServer.sh server1 2.取消控 ...

  8. Rxjs之创建操作符(Angular环境)

    一 of操作符 import { Component, OnInit } from '@angular/core'; import { of } from 'rxjs/observable/of'; ...

  9. c#控件的动画显示效果

    1.  缘由: 项目中任务完成有个提示,需要以动画效果展示,其效果当如下图: 此为老项目为Delphi所写,改用c#实现,此效果做些设计.本也不难,小技而已,但为易于扩展,写了个静态类实现. 2. A ...

  10. [leetcode]270. Closest Binary Search Tree Value二叉搜索树中找target的最接近值

    Given a non-empty binary search tree and a target value, find the value in the BST that is closest t ...