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 基本使用的更多相关文章

  1. Python Socket 编程——聊天室示例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...

  2. Python Socket 网络编程

    Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...

  3. python socket发送魔法包网络唤醒开机.py

    python socket发送魔法包网络唤醒开机.py 现在的电脑应该都普遍支持有线网络的WOL了,支持无线网络唤醒的电脑,可能比较少. """ python socke ...

  4. Python socket编程之二:【struct.pack】&【struct.unpack】

    import struct """通过 socket 的 send 和 recv 只能传输 str 格式的数据""" "" ...

  5. Python Socket,How to Create Socket Server? - 网络编程实例

    文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...

  6. Python Socket,How to Create Socket Cilent? - 网络编程实例

    文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...

  7. Python Socket通信原理

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

  8. Python Socket单线程+阻塞模式

    Python之旅]第五篇(二):Python Socket单线程+阻塞模式 python Socket单线程 Socket阻塞模式 串行发送 摘要:  前面第五篇(一)中的一个Socket例子其实就是 ...

  9. python socket之tcp服务器与客户端demo

    python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...

  10. python socket编程---从使用Python开发一个Socket示例说到开发者的思维和习惯问题

    今天主要说的是一个开发者的思维和习惯问题. 思维包括编程的思维和解决一个具体问题的分析思维,分析思路,分析方法,甚至是分析工具. 无论是好习惯还是不好的习惯,都是在者一天一天的思维中形成的.那些不好的 ...

随机推荐

  1. Git使用教程五

    基于ssh协议(推荐) 该方式与前面https方式相比,只是影响github对于用户的身份鉴权方式,对于git的具体操作(如提交本地.添加注释.提交远程等操作)没有任何影响.   生成公私钥对指令(需 ...

  2. Eclipse中安装配置Gradle

    Gradle是以Groovy语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具. gradle对多工程的构建支持很出色,工程依赖是gradle的第一功能. gradle支 ...

  3. Spring boot中注册Servlet

    Spring boot中注册Servlet 如何在spring boot项目中注册Servlet呢? 如何在spring boot项目中注册Servlet呢? 由于没有web.xml,无法直接在xml ...

  4. Python习题集(八)

    每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我! https://www.cnblogs.com/poloyy/category/1676599.html 题目 要求:判断数组元素 ...

  5. 尚硅谷 Go语言核心编程资料

    链接:https://pan.baidu.com/s/1zn8Jf82lxg-2msVS1Iedeg  提取码:5vsg  复制这段内容后打开百度网盘手机App,操作更方便哦

  6. docker的网络基础

    docker使用的与Linux网络有关的主要技术: Network Namespace Veth 设备对 Iptables/Netfilter 网桥 路由 <1> 网络命令空间 names ...

  7. 地址栏url中去掉所有参数

    1.地址栏url中去掉所有参数,这个是纯前端解决,很多时候页面跳转时候会选择在url后面带参数过去,(使用?&),方便传也方便取,但是我们要做的是不要让页面的一些请求参数暴露在外面 正常项目工 ...

  8. Redis-初见

    目录 启动and连接 JRedis 宝塔 Redis.conf RDB AOF(Append Only File) 发布和订阅 主从复制 一主二从 复制原理 宕机后的手动配置主机 哨兵模式 Redis ...

  9. 使用@EnableConfigurationProperties注册配置Bean时的命名规则

    Spring和Spring Boot开发中,常使用@ConfigurationProperties注解某个类,使其实例接受一组具有相同前缀的配置项. 可以使用@Component或Java Confi ...

  10. 从输入 URL 到展现页面的全过程

    总体分为以下几个过程 DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 DNS解析 域名到ip地址转换 TCP连接 HTTP连接是基于TCP连接 ...