网络上关于socket的介绍文章数不胜数。自己记录下学习的点点滴滴。以供将来复习学习使用。

socket中文的翻译是套接字,总感觉词不达意。简单的理解就是ip+port形成的一个管理单元。也是程序中应用程序调用的接口。

在这里我们就介绍如何启动tcp 的server。

tcp连接中server部分,启动一个ip和port口,在这个port口监听,当收到client发来的请求,用一个新的端口port2同client建立连接。

socket启动监听的过程就是:

创建socket

bind端口

开始监听

建立连接+继续监听

代码:

'''
This is a testing program
the program is used to start server
'''
import socket
import sys def start_tcp_server(ip, port):
#create socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_address = (ip, port)
#bind port
print 'starting listen on ip %s, port %s'%server_address
sock.bind(server_address) #starting listening, allow only one connection
try:
sock.listen(1)
except socket.error, e:
print "fail to listen on port %s"%e
sys.exit(1) while True:
print "waiting for connection"
client,addr = sock.accept()
print 'having a connection'
client.close() if __name__ == '__main__':
start_tcp_server('10.20.0.20', 12345)

 

在这里有一个常用技巧,在start_tcp_server中,我们最常用到的是本机的ip,为了程序的通用性,最好使用调用函数的方式获取ip地址。

用到两个函数socket.gethostname与socket.gethostbyname('name')

ip = socket.gethostbyname(socket.gethostname())

但是问题是一般情况下得到的ip地址为127.0.0.1。

如果想使用配置或dhcp获取的ip,如何做?实验当中。

python - socket - server的更多相关文章

  1. python socket server源码学习

    原文请见:http://www.cnblogs.com/wupeiqi/articles/5040823.html 这里就是自己简单整理一下: #!/usr/bin/env python # -*- ...

  2. Python socket server demo

    #coding:utf-8 from socket import * #开启ip和端口 ip_port = ("192.168.1.103",8088) print ip_port ...

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

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

  4. python之路 socket、socket server

    一.socket socket的英文原义是“孔”或“插座”.作为BSD UNIX的进程通信机制,取后一种意思.通常也 称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可 ...

  5. python socket编程入门(编写server实例)-乾颐堂

    python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...

  6. python socket编程入门(编写server实例)+send 与sendall的区别与使用方法

    python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...

  7. Python socket 基础(Server) - Foundations of Python Socket

    Python socket 基础 Server - Foundations of Python Socket 通过 python socket 模块建立一个提供 TCP 链接服务的 server 可分 ...

  8. Python之路-python(面向对象进阶(模块的动态导入、断言、Socket Server))

    模块的动态导入 断言 Socket Server 一.模块的动态导入 class C(object): def __init__(self): self.name = "zhangsan&q ...

  9. Python Socket 编程示例 Echo Server

    简评:我们已经从「Python Socket 编程概览」了解了 socket API 的概述以及客户端和服务器的通信方式,接下来让我们创建第一个客户端和服务器,我们将从一个简单的实现开始,服务器将简单 ...

随机推荐

  1. BZOJ 2716 [Violet 3]天使玩偶 ——KD-Tree

    [题目分析] KD-Tree的例题.同BZOJ2648. [代码] #include <cstdio> #include <cstring> #include <cstd ...

  2. PHP 不使用第三个变量实现交换两个变量的值

    //字符串版本 结合使用substr,strlen两个方法实现$a="a";$b="b";echo '交换前 $a:'.$a.',$b:'.$b.'<br ...

  3. 我的c++学习(2)比较两个数字大小

    #include "stdafx.h" #include<iostream> using namespace std; int max(int i, int j){ / ...

  4. Python基础5- 运算符

    Python的运算符和其他语言的类似,主要有:算术运算符.比较运算符.逻辑运算符.赋值运算符.成员运算符.位运算符 ----------------------------------------算术 ...

  5. wordpress发送测试邮件

    下面的邮箱设置使用了qq邮箱的设置 写上接收测试邮件的邮箱  再send test

  6. java-类

    浏览以下内容前,请点击并阅读 声明 java是面向对象的语言,而对象的创建,则需要借助类,类可以说是一个创建对象的模具(个人理解). 类的定义 以下构成定义类的最简单(不能再简单)语句: class ...

  7. Modify a Stored Procedure using SQL Server Management Studio

    In Object Explorer, connect to an instance of Database Engine and then expand that instance. Expand  ...

  8. ssh An internal error occured during "Add Deployment"

    这个问题一般是由于导入别人做的项目,但是项目所用的jdk跟当前所用的jdk不一样. 以前遇到过这个问题没有解决,今天解决了. 右键项目名→Properties→Java Build Path→Libr ...

  9. BZOJ3542:DZY Loves March

    询问是要求 $\sum_{i=1}^n((x[i]-a)^2+(y[i]-b)^2)(x[i]=a||y[i]=b)$ 即求 $\sum_{i=1}^n(x[i]-a)^2(y[i]=b)+\sum_ ...

  10. Haskell 笔记 ②

    ①如何写一个求阶层函数? fac 0 =1 fac n=n*fac(n-1) 函数自适应匹配参数,可以把特判情况写在前面,注意按顺序匹配的,n这种万能情况写在最前面就完蛋了.同时你也注意到,函数只能一 ...