python socket 基本使用
socket通常也叫做“套接字”,用于连接server client,是一个通信链的句柄,应用程序通常通过套接字向网络发出请求或应答网络请求。
就像python 处理file一样:
file是针对某个文件 打开-->读写-->关闭
socket是针对服务器 客户端进行 打开-->读写-->关闭
server部分:
import socket,sys
server_address=('127.0.0.1', 8000)
BUF_SIZE=1024
try:
server_sk=socket.socket(socket.AF_INET, socket.SOCK_STREAM) #创建新的socket对象
except socket.error, msg:
print "socket create fail, error code:" + str(msg[0]) + 'error message:' + msg[1]
print 'socket create successfully'
try:
server_sk.bind(server_address) #绑定server地址,address取决于地址族,AF_INET以元组表示
except socket.error, msg:
print "socket bind address error:" + str(msg[0]) + 'error mssage:' + msg[1]
print 'socket bind address successfully' server_sk.listen(5)
print "listening..." while True:
client_sk, client_addr = server_sk.accept()
print "connected by:", client_addr
while True:
data=client_sk.recv(BUF_SIZE)
print data
client_sk.sendall(data) server_sk.close()
参数一:地址簇
socket.AF_INET IPv4(默认)
socket.AF_INET6 IPv6
参数二:类型
socket.SOCK_STREAM 流式socket , for TCP (默认)
socket.SOCK_DGRAM 数据报式socket , for UDP
Client部分:
import socket,sys
server_address=('127.0.0.1', 8000)
BUF_SIZE=1024 try:
client_sk=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
print "socket create fail, error code:" + str(msg[0]) + 'error message:' + msg[1] client_sk.connect(server_address)
while True:
data= raw_input('please input your sending message->')
if not data:
print "input data cannot be empty, please input again.."
continue
client_sk.sendall(data)
recv_data = client_sk.recv(BUF_SIZE)
print recv_data client_sk.close()
server 输出:
socket create successfully
socket bind address successfully
listening...
connected by: ('127.0.0.1', 63388)
aa
client 输出:
please input your sending message->aa
aa
please input your sending message->
python socket 基本使用的更多相关文章
- Python Socket 编程——聊天室示例程序
上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...
- Python Socket 网络编程
Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...
- python socket发送魔法包网络唤醒开机.py
python socket发送魔法包网络唤醒开机.py 现在的电脑应该都普遍支持有线网络的WOL了,支持无线网络唤醒的电脑,可能比较少. """ python socke ...
- Python socket编程之二:【struct.pack】&【struct.unpack】
import struct """通过 socket 的 send 和 recv 只能传输 str 格式的数据""" "" ...
- Python Socket,How to Create Socket Server? - 网络编程实例
文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...
- Python Socket,How to Create Socket Cilent? - 网络编程实例
文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
- Python Socket单线程+阻塞模式
Python之旅]第五篇(二):Python Socket单线程+阻塞模式 python Socket单线程 Socket阻塞模式 串行发送 摘要: 前面第五篇(一)中的一个Socket例子其实就是 ...
- python socket之tcp服务器与客户端demo
python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...
- python socket编程---从使用Python开发一个Socket示例说到开发者的思维和习惯问题
今天主要说的是一个开发者的思维和习惯问题. 思维包括编程的思维和解决一个具体问题的分析思维,分析思路,分析方法,甚至是分析工具. 无论是好习惯还是不好的习惯,都是在者一天一天的思维中形成的.那些不好的 ...
随机推荐
- Spring boot中注册Servlet
Spring boot中注册Servlet 如何在spring boot项目中注册Servlet呢? 如何在spring boot项目中注册Servlet呢? 由于没有web.xml,无法直接在xml ...
- openresty 自动 deploy github repository
配置 deploy key 配置 webhooks https://gist.github.com/hangj/ce6aabac77e96b010e3b361e18422013
- linux7(centos7)新系统安装后要做的事!
前言: 初学者在安装linux(centos)系统后,需要对服务器的环境做些简单配置! 怎么联网? 怎么对SSH优化设置? 怎么在众多服务器中识别谁是谁? 常用的小工具推荐等等... ###网络优化设 ...
- Spring(二)——IOC
一.入门 1.案例 1 public class Student { 2 3 private String name; 4 5 public Student() { 6 System.out.prin ...
- css文本溢出省略号大总结,如你所愿
一行: white-space: nowrap; text-overflow: ellipsis; overflow: hidden; word-break: break-all; 两行: width ...
- vue 双向绑定(v-model 双向绑定、.sync 双向绑定、.sync 传对象)
1. v-model实现自定义组件双向绑定 v-model其实是个语法糖,如果没按照相应的规范定义组件,直接写v-model是不会生效的.再说一遍,类似于v-on:click可以简写成@click,v ...
- 剑指 Offer 38. 字符串的排列
剑指 Offer 38. 字符串的排列 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" ...
- ELK学习之Logstash+Kafka篇
上一篇介绍了一下Logstash的数据处理过程以及一些基本的配置功能,同时也提到了Logstash作为一个数据采集端,支持对接多种输入数据源,其中就包括Kafka.那么这次的学习不妨研究一下Logst ...
- Operator 示例:使用 Redis 部署 PHP 留言板应用程序
「Kubernetes 官方示例:使用 Redis 部署 PHP 留言板应用程序」Operator 化. 源码仓库:https://github.com/jxlwqq/guestbook-operat ...
- 【第十二篇】- Git 服务器搭建之Spring Cloud直播商城 b2b2c电子商务技术总结
Git 服务器搭建 上一章节中我们远程仓库使用了 Github,Github 公开的项目是免费的,2019 年开始 Github 私有存储库也可以无限制使用. 这当然我们也可以自己搭建一台 Git 服 ...