最近巩固下python语言,说真的,使用了这么多脚本语言,还是这门比较好玩点,快速,简洁,容易上手更不用说了。

socket 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。socket是允许发送和接受数据。建立通信通道,网络通信的每个端点拥有一个套接字对象为前提。

以下写的代码还是不够完美,哪位高手路过的,请多指点,上代码...............

1 服务器端[root@localhost ~]# cat server.py

#coding:utf8

import time

import sys

import socket

import select

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server.bind(('127.0.0.1',8989))#绑定IP和端口

server.listen(10) #侦听

input = [server,sys.stdin]#sys.stdin是标准输入,从键盘输入

print '请等待连接,亲!耐心点......'

client,address = server.accept()#获取到客户和IP地址

print "连接的是:",address

input.append(client)#添加客户端到imput列表

Ture = 1#定义一个死循环

while Ture:

print"请输入聊天的话题,亲>>>>>:"

input_data,out_data,except_data = select.select(input,[],[])#利用select对所有输入的数据进行监视

for receive_data in input_data:#这里就是循环输入,但这里要有两种方式

if receive_data == sys.stdin: #这个是处理标准输入,也就是服务器的使用键盘输入

data = raw_input()

if data == '^c':

running = 0

client.send(data) #发送到客户端

client.close()

break

client.send("发送时间: %s:\n%s"%(time.ctime(),data))

else:#这个就是接收socket的输入

data = receive_data.recv(1024)

print "",data

server.close()

2  客户端

[root@localhost ~]# cat clien.py

#coding:utf8

import time

import sys

import select

import socket

address = ('127.0.0.1',8989)

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect(address)

input = [client,sys.stdin]

Ture = 1

while Ture:

print '请输入聊天的话题,亲>>>>>:'

input_data,oupt_data,except_data = select.select(input,[],[])

for receive_data in input_data:

if receive_data == client:

data = client.recv(1024)

if data == '^c':

running = 0

print 'server exist'

receive_data.close()

print 'client is over'

break

print "",data

else:

client_data = raw_input()

client.send("发送时间: %s:\n%s"%(time.ctime(),client_data))

client.close()

3  测试!!!

服务器端执行:

[root@localhost ~]# python server.py

请等待连接,亲!耐心点......

客户端执行:

[root@localhost ~]# python clien.py

请输入聊天的话题,亲>>>>>:

4 服务器端和客户端聊天对话测试:

客户端发起对话连接:

[root@localhost ~]# python clien.py

请输入聊天的话题,亲>>>>>:

测试socket功能是否正常使用,请回答?

请输入聊天的话题,亲>>>>>:

服务器端口接收信息:

[root@localhost ~]# python server.py

请等待连接,亲!耐心点......

连接的是: ('127.0.0.1', 33371)

请输入聊天的话题,亲>>>>>:

发送时间: Wed Jul 24 09:13:48 2013:

测试socket功能是否正常使用,请回答?

请输入聊天的话题,亲>>>>>:

服务器端发送信息:

[root@localhost ~]# python server.py

请等待连接,亲!耐心点......

连接的是: ('127.0.0.1', 33371)

请输入聊天的话题,亲>>>>>:

发送时间: Wed Jul 24 09:13:48 2013:

测试socket功能是否正常使用,请回答?

请输入聊天的话题,亲>>>>>:

测试是成功的,不过代码还是得优化,功能还需要添加,收到没?

请输入聊天的话题,亲>>>>>:

客户端接收信息:

[root@localhost ~]# python clien.py

请输入聊天的话题,亲>>>>>:

测试socket功能是否正常使用,请回答?

请输入聊天的话题,亲>>>>>:

发送时间: Wed Jul 24 09:21:15 2013:

测试是成功的,不过代码还是得优化,功能还需要添加,收到没?

请输入聊天的话题,亲>>>>>:

由于本人水平有限,代码写的不是很完美,下次有时间写一个像QQ界面的通讯软件.

好玩的python代码聊天客户端_python socket实现客户端与服务器端对话相关推荐

  1. python tcp服务器模板_python socket之tcp服务器与客户端示例

    Python中用socket编写服务器和客户端... 先说下我的问题,本来预想是,客户端连上服务器,然后向服务器发送信息服务器端代码 while 1: buf = s.recv(1024) 改成 wh ...

  2. python实现邮件客户端_python socket实现web服务器,邮件客户端

    本博客是针对,<计算机网络自顶向下方法>一书第二章后面套接字编程作业, 所有代码均已上传至我的github:https://github.com/inspurer/ComputerNetw ...

  3. python代码写龙卷风_python面试题

    1.mysql 左连接 右连接 内连接的区别 内连接,显示两个表中有联系的所有数据 左连接,左表为参照,显示所有数据 右连接,以右表为参照显示数据 2.Django的框架流程,有那些中间件 框架流程: ...

  4. python代码质量检查工具_python代码检查工具pylint 让你的python更规范

    复制代码 代码如下: #coding:utf-8 ''' a test function module ''' import urllib import time def fetch(url): '' ...

  5. python代码加密 混淆_Python程序的混淆和加密

    混淆 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. 如果你觉得有用, 可以购买离线版本. 同时需要注意的是, 这个混淆其实还是被很多人怀疑的, 因为即使混淆了 ...

  6. python代码太长_Python 太糟糕了?开发者总结了 8 大原因

    作者对每一项"缺点"都进行了分析,全文洋洋洒洒,概括起来 8 个原因分别是: 1.版本不兼容 Python 3 与 Python 2 不完全兼容.作者以 Perl 语言和创造了世界 ...

  7. python代码块缩进_Python代码需要缩进吗

    Python则是通过缩进来识别代码块的. 缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的 ...

  8. python代码规范工具_Python代码规范Flake8的简单示例

    这篇文章主要为大家详细介绍了Python代码规范Flake8的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

  9. python代码怎么修改_python修改微信和支付宝步数的示例代码

    项目意义 如果你想在支付宝蚂蚁森林收集很多能量种树,为环境绿化出一份力量,又或者是想每天称霸微信运动排行榜装逼,却不想出门走路,那么该python脚本可以帮你实现. 实现方法 手机安装第三方软件乐心健 ...

最新文章

  1. 大中型企业的天网:Apache Geode
  2. UIAlertController 简单修改title以及按钮的字体颜色
  3. Linux ping 使用教程,linux ping命令的几个简单使用方法
  4. 神奇的问题记录【SqlDataAdapter Fill DataSet】
  5. DataTables获取指定元素的行数据
  6. python可视化网页设计_python可视化工具
  7. encode decode 使用指南
  8. C# OPCUA 读写结构体
  9. 小编教你如何打印出一张好看的思维导图
  10. 为什么要减肥呢?减肥的意义
  11. 解析木马攻击与防御发展简史
  12. QTableWidget点击空白处取消选中
  13. python批量分析表格_python批量设置多个Excel文件页眉页脚的脚本
  14. I:nico和niconiconi(dp)
  15. linux 板卡驱动开源项目Comedi使用编译流程
  16. 10款最佳跨浏览器测试工具
  17. 喜事一桩|派盾科技荣获2020年杭州高新区“5050计划”政策扶持
  18. java并发编程的艺术-(4)
  19. 高效能人士的七个习惯-读后感
  20. react-native通信流程

热门文章

  1. 室内温湿度监测系统解决方案
  2. Mybatis Interceptor 拦截器
  3. iOS URL Schemes与漏洞的碰撞组合
  4. SpringMVC(十三)异常注解
  5. xtrabackup备份还原MySQL数据库
  6. jquery实现复选框checkbox全选,取消全选
  7. 【分形算法】Jason带你飞之1——LS文法的java实现
  8. php 魔术方法使用说明详细
  9. java.io.file()_Java IO File (一)
  10. unity串口 连接多个串口崩溃_3分钟全面了解串口服务器原理技术