socket

函数原型:socket.socket([family[,type[,proto]]])

family参数取值(协议族):

  socket.AF_INET        -->ipv4协议

  socket.AF_INET6   -->ipv6协议

type参数取值:

  SOCK_STREAM         -->tcp协议相互通信在所有数据传送前必须使用connect()来建立连线状态.

  SOCK_DGRAM          -->udp协议相互通信

sendto

函数原型:socket.sendto(string,address)

发送字符创string到address指定的主机。

string:用来发送的字符创

address:是一个元组,需要指定ip地址和端口号

recvfrom

函数原型:socket.recvfrom(bufsize[,flags])

用来从网络上接受UDP数据包,并将接受到的数据存放在buffsize定义的内存空间里边,一般不小于1024字节,发送的字节一般都小于1024字节。

tcp传输实例

#socket_send.py

#client

#!/usr/bin/env python
#coding:GBK
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.sendto('Hello world',('10.74.84.186',9999))
data = s.recv(1024)
print 'received sendback:',data
s.close()

#socket_recv.py

#server

#!/usr/bin/env python
#coding=GBK
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('',9999))
s.listen(5)
clientsock, clientaddr = s.accept()
data = clientsock.recv(1024)
print 'received message:',data
clientsock.send(data + "-收到")
clientsock.close()

send端报错

root@liqian-python:/pythonsamba# python socket_tcp.py
Traceback (most recent call last):
File "socket_tcp.py", line 4, in <module>
s.sendto('Hello world',('10.74.84.186',9999))
socket.error: [Errno 32] Broken pipe

原因:SOCK_STREAM是提供双向连续且可信赖的数据流,即TCP,在所有数据传送前必须使用connect()来建立连线状态。

python代码实现解决方案

#socket_send.py

#!/usr/bin/env python
#coding:GBK
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('10.74.84.186',9999))
s.send('Hello world')
data = s.recv(1024)
print 'received sendback:',data
s.close()

python socket 函数介绍的更多相关文章

  1. python strip()函数 介绍

    python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除 ...

  2. OVERLAPPED相关的socket函数介绍

    OVERLAPPED相关的socket函数介绍 上一篇文章介绍了<Windows核心编程>OVERLAPPED结构与内核对象IOCompletionPort相关概念,见http://www ...

  3. socket()函数介绍

    socket()函数介绍 socket函数介绍 函数原型 domain type protocol errno 示例 函数原型 socket()函数的原型如下,这个函数建立一个协议族为domain.协 ...

  4. (转)python之函数介绍及使用

    为什么要用函数? 1.减少代码量 2.保持一致性 3.易维护 一.函数的定义和使用 ? 1 2 3 4 5 6 def test(参数):              ...     函数体     . ...

  5. python socket 详细介绍

    Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...

  6. python socket函数详解

    关于socket函数,每个的意义和基本功能都知道,但每次使用都会去百度,参数到底是什么,返回值代表什么意义,就是说用的少,也记得不够精确.每次都查半天,经常烦恼于此.索性都弄得清楚.通透,并记录下来, ...

  7. Python Socket详细介绍

    Socket 类型 套接字格式: socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号(默认为0)来创建套接字. socket类型 描述 socket. ...

  8. 移动端自动化测试(二)之 Appium常用的API(python)函数介绍

    上一章节已经介绍了Appium的环境搭建,其实只要掌握了Appium的工作原理,前期的准备工作和安装过程是比较简单的.那么当我们搭建好Appium环境后接下来做些什么呢?通常思路是开始appium的第 ...

  9. python的函数介绍 位置参数 关键字参数 默认参数 参数组 *args **kwargs

    1.数学意义的函数与python中的函数 数学意义的函数 y = 2*3+1 x =3 y =7 x是自变量,y是因变量 2.python中定义函数的方法 一个函数往往都是为了完成一个特定的功能而存在 ...

随机推荐

  1. Qt 中用QProcess调用cmd命令

    项目做到一定阶段,常常须要在原来的project上调用外部程序. Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信. 基本用法: QProcess p(0); ...

  2. sigmod函数

    #include <cmath> //math.h double sigmod(double x) { return 1/(1+exp(-x)); }

  3. Python 编程第一步

    Python  编程第一步 在前面的教程中我们已经学习了一些 Python3 的基本语法知识,下面我们尝试来写一个斐波纳契数列. # Fibonacci series: 斐波纳契数列 # 两个元素的总 ...

  4. js数组和数组去重的几种简单的方法

    http://blog.csdn.net/liangklfang/article/details/49300417 1.证明一个对象是数组的方法. 方法(1) [].constructor === A ...

  5. js判断类型的四种方法

    typeof:使用typeof可以很方便的判断六种类型:undefined.boolean.string.number.object.function 数组和null会被判断为object类型 ins ...

  6. .net asp 实现json 格式跨域访问 的方法

    在<configuration> 配置目录下添加允许跨域的头部信息 //webapi 默认的web.config有配置 //1)删除 下面参数 否者WEB API 会 出现405 错误 没 ...

  7. 正常终止expdp作业

    1.先查询expdp对应的job_nameSQL> select * from dba_datapump_jobs; OWNER_NAME JOB_NAME  OPERATION JOB_MOD ...

  8. 单点登录系统实现基于SpringBoot

    今天的干货有点湿,里面夹杂着我的泪水.可能也只有代码才能让我暂时的平静.通过本章内容你将学到单点登录系统和传统登录系统的区别,单点登录系统设计思路,Spring4 Java配置方式整合HttpClie ...

  9. 2162112375 Week04-面向对象设计与继承

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 对象.类.封装性.静态属性.静态方法.重载.继承.多态 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现 ...

  10. node设置跨域

    开发过程中在build/dev-server.js配置相关代码以跨域 app.use('/api',proxyMiddleware({ target:'http://m.maizuo.com/v4', ...