python网络编程——实现简单聊天
通过socket建立简单的聊天工具
server.py
import socket
import threading
import time s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('ip.*.*.*', 9999))
s.listen(5)
print('Waiting for connection...') 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
print('Client:%s'%data.decode('utf-8'))
sock.send(('Server:%s'% input()).encode('utf-8'))
sock.close()
print('Connection from %s:%s closed.' % addr) while True:
# 接受一个新连接:
sock, addr = s.accept()
# 创建新线程来处理TCP连接:
t = threading.Thread(target=tcplink, args=(sock, addr))
t.start()
client.py
import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 建立连接:
s.connect(('ip.*.*.*', 9999))
# 接收欢迎消息:
print(s.recv(1024).decode('utf-8'))
while True:
msg=input()
# 发送数据:
s.send(msg.encode('utf-8'))
print(s.recv(1024).decode('utf-8'))
if msg =='exit':
break
s.send(b'exit')
s.close()
python网络编程——实现简单聊天的更多相关文章
- Python网络编程-Socket简单通信(及python实现远程文件发送)
		学习python中使用python进行网络编程,编写简单的客户端和服务器端进行通信,大部分内容来源于网络教程,这里进行总结供以后查阅. 先介绍下TCP的三次握手: 1,简单的发送消息: 服务器端: i ... 
- 【Python网络编程】多线程聊天软件程序
		课程设计的时候制作的多线程聊天软件程序 基于python3.4.3 import socket import pickle import threading import tkinter import ... 
- Ubuntu上Qt+Tcp网络编程之简单聊天对话框
		首先看一下实现结果: >>功能: (1)服务器和客户端之间进行聊天通信: (2)一个服务器可同时给多个客户端发送消息:(全部连接时) 也可以只给特定的客户端发送消息:(连接特定IP) ... 
- [Python网络编程]一个简单的TCP时间服务器
		服务器端: 1.创建一个面向网络的TCP套接字对象socket, 2.绑定地址和端口 3.监听 4.当有客户端连接时候,接受连接并给此连接分配一个新的套接字 5.当客户端发送空信息时候,关闭新分配的套 ... 
- Python -- 网络编程  --  Socket简单网络通信
		Qt如果多线程的话,似乎会出BUG 1.服务端(server.py) import sys, socket, threading import binascii from PyQt4 import Q ... 
- Python网络编程 - 一个简单的客户端Get请求程序
		import socket target_host = "www.baidu.com" target_port = 80 # create a socket object clie ... 
- Python网络编程02 /基于TCP、UDP协议的socket简单的通信、字符串转bytes类型
		Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes类型 目录 Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes ... 
- python网络编程,通过服务名称和会话类型(tcp,udp)获取端口号,简单的异常处理
		作为一个php程序员,同时有对网络方面感兴趣,php就比较蛋疼了,所以就抽了些时间看python 之前学python基础因为工作原因,断断续续的看了个基础,差不多是可以写代码了 最近在看<pyt ... 
- 28、Python网络编程
		一.基于TCP协议的socket套接字编程 1.套接字工作流程 先从服务器端说起.服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客 ... 
随机推荐
- jQuery插件实现的页面功能介绍引导页效果
			新产品上线或是改版升级,我们会在用户第一次使用产品时建立一个使用向导,引导用户如何使用产品,如使用演示的方式逐一介绍界面上的功能模块,从而提升了用户体验和产品的亲和力. Helloweba.com之前 ... 
- 学术论文写作的 paper、code 资源
			(机器学习/计算机视觉/深度学习)代码 0. 核心期刊 Best paper awards at - CV NIPS: JMLR COLT & ICML(每年度的官网) 1. Computin ... 
- react 父组件向子组件传递函数
			这段时间一直在使用react,由于这react是单向数据绑定,总感觉有点不适用,毕竟之前一直都在使用angular,但学习还是要继续,做了一个迭代的项目,都差点忘记要总结一下这个react了,现在可以 ... 
- node lesson4--eventproxy不懂
			var express = require('express'); var superagent = require('superagent'); var cheerio = require('che ... 
- zlib minizip 实现解压zip
			#include <stdio.h> #include <string.h> #include "unzip.h" #define dir_delimter ... 
- MongoDB 通过自带工具命令进行备份表,再将备份表还原出数据
			创建一个bat文件 在其中输入以下3行 第1行进入工具mongodump所在的目录 第2行 将Adam数据库里面的 第3行 将上面存在C:\Data\Dump\Adam\文件夹里面的TBLQuickS ... 
- 手把手教你安装QT集成开发环境(操作系统为ubuntu10.04,需要先安装build-essential和libncurses5-dev)
			在安装QT集成开发工具包之前需要先安装build-essential和libncurses5-dev这两个开发工具和库,libncurses5-dev库是一个在Linux/Unix下广泛应用的图形函数 ... 
- 解析Android的 消息传递机制Handler
			1. 什么是Handler: Handler 网络释义"机械手.经理"意思,在Android它用于管理多个线程UI操作: 2. 为什么会出现Handler: 在Android里面的 ... 
- ISTQB 软件测试资质认证
			1.什么是ISTQB: ISTQB(International Software Testing Qualification Board)是国际唯一权威的软件测试资质认证机构, 主要负责制订和推广国际 ... 
- 如何诊断rac环境sysdate 返回的时间错误
			最近处理了若干rac环境访问sysdate错误的时间返回.而这个问题通常是一个数据库链接是由现在Listener创建的情况下.并且.大部分情况下都是和时区设置相关的.在这篇文章中我们会针对怎样诊断这样 ... 
