[python网络编程]利用socket编写简单的服务器

利用socket编写简单的服务器

步骤解析

建立socket对象

这一步跟我们上次使用socket做客户端是一样的,都需要有一个socket连接

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

设置socket选项(setsockopt)


选项介绍
setsockopt(set socket option),参数设置格式:setsockopt(level,optname,value)


各选项的关系:
1.level:level的设定决定了optname可以使用的选项
2.optname:由level决定
3.value:由level和optname决定


选项
level:SOL_SOCKET
level为SOL_SOCKET的时候,optname可以使用的常用选项有:


绑定地址和端口号(绑定socket)

作为服务器,如果提供访问的话,必须要有一个IP地址和端口号供客户端访问。

# 绑定地址为192.168.128.128 端口号为 12345
s.bind((‘192.168.128.128‘,12345))

侦听连接(listen)

侦听绑定好的IP:PORT

# 5 代表着允许5个连接在队列中等待。
s.listen(5)

接受连接(accept)

接受客户端连接

实例

脚本编写

[[email protected] network]# cat socket_server.py
#!/usr/bin/env python
# 导入socket模块
import socket
# 配置host和port
host = ‘192.168.128.128‘
port = 1234

# 新建一个socket连接
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 设置socket参数

s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
# 绑定IP和端口
s.bind((host,port))
# 监听
s.listen(5)
# 用while循环一直接受连接,如果不配置while循环,程序执行一次就退出了
while 1:
                # 接受连接,并把客户端的连接信息赋值给clientsock,和clientaddr
        clientsock,clientaddr = s.accept()
                # 打印客户端的信息
        print "Got connection from",clientsock.getpeername()
        # 关闭连接
                clientsock.close

[[email protected] network]# 

运行程序

[[email protected] network]# python socket_server.py 

查看监听端口

[[email protected] ~]# netstat -ant | grep 1234
tcp        0      0 192.168.128.128:1234        0.0.0.0:*                   LISTEN
tcp        0      0 192.168.128.128:1234        192.168.128.128:33232       TIME_WAIT
[[email protected] ~]#

客户端连接

telnet 192.168.128.128 1234

查看服务器端反应

[[email protected] network]# python socket_server.py
Got connection from (‘192.168.128.1‘, 2839)

原文地址:http://blog.51cto.com/xiaowangzai/2126318

时间: 2024-10-11 18:04:54

[python网络编程]利用socket编写简单的服务器的相关文章

python 网络编程:socket和select实现伪并发

上节地址:Python网络编程:socket 先补充点内容: 一.send和sendall区别 send,sendall ret = send('safagsgdsegsdgew') #send 发送完成后会有一个返回值,告知发送了多少,并不一定会把数据全部发送过去. sendall:内部调用send,将数据全部发送完为止. 因此我们使用时最好使用sendall 二.粘包 粘包问题需要理解recv()的使用,我们定义接收值的时候会写recv(1024)表示一次接收1024字节,但是有时候接收的数

python 网络编程:socket

在学习socket之前,我们先复习下相关的网络知识. OSI七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.OSI七层模型是由国际标准化组织ISO定义的网络的基本结构,不仅包括一些概念和结构,还包括一系列的协议. TCP/IP四层模型:既然有OSI七层模型,为什么我们还要定义一个TCP/IP的四层模型呢,那是因为OSI七层模型对应面过于宽泛,很多概念实现不了,也没必要实现,因此,实际生产中广泛应用的是TCP/IP四层结构,他们的对应关系如下表: TCP/IP OSI 应用层

python 网络编程(Socket)

# from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_response(status='200 OK',headers=[('Content-Type','text/html')])# url=environ['PATH_INFO']## return "guozhendong"## if __name__=='__main__':# httpd=m

2015/12/14 Python网络编程,TCP/IP客户端和服务器初探

一直不是很清楚服务器的定义,对于什么是服务器/客户端架构也只有一个模糊的感觉.最近开始学习,才明白一些什么服务器和客户端的关系. 所谓的服务器,就是提供服务的东西,它是一个硬件或者软件,可以向一个或者多个客户端提供所需要的服务.它存在的目的就是等待客户的请求,然后给客户服务,再接着等待请求. 而客户端,就来连上一个服务器,提出自己的请求,然后等待获得反馈. 比如说,打印机就是一个服务器的例子,与之相连的计算机就是客户端,通过网络连接打印机后,给它提出服务需求(打印)和传输数据(传输内容),然后打

python网络编程基础--socket的简介,以及使用socket来搭建一个简单的udp小程序

socket介绍: socket(简称套接字),是进程间通讯的一个工具,他能实现把数据从一方传输到另一方,完成不同电脑上进程之间的通讯,它好比数据的搬运工.socket应用:不夸张来说,只要跟网络相关的应用程序或者软件都使用到了socket, 比如:微信,qq等使用socket创建udp网络程序的流程:1,创建客户端套接字2,发送/接收数据3,关闭套接字使用程序展现流程 :(使用的 ide为pycharm):1,首先创建socket,在 Python 中 使用socket 模块的函数 socke

Python 网络编程和Socket

2017-07-24 20:43:49 Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求.Http协议主要的操作流程是request-response即请求响应.我们可以利用python中的socket库完成连接的建立,然后使用GET方法获取服务器端的数据. 一.使用socket获取网页 import socket #套接字的参数声明,不用修改直接使用 mysock = socket.socket(socket.AF_INET,s

python网络编程:socket,gethostname,gethostbyname

功能:打印主机名和主机IP: [[email protected] python]# cat socket1.py #!/usr/bin/python import socket host_name = socket.gethostname() print "hostname:%s" % host_name print "IP address: %s" %socket.gethostbyname(host_name) 运行结果: [[email protected]

【学习笔记】Python网络编程(二)socket处理多个连接

贴代码,server端: import socket # s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) host =  '' port = 6074 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind((host,port)) s.listen(1) while 1:     conn,addr = s.accept()     while 1:         pri

10.python网络编程(socket server 实现并发 part 2)

一.基于tcp的socket通信的基本原理分析. 基于tcp的socket通信,主要依靠两个循环,分别是连接循环和通信循环. 这个前面的文章有写过,在这里就不再重复了. 二.socketserver实现多并发的原理分析. 1.server类: 2.reques类. 类继承关系: 示例代码: import socketserver import struct import json import os class FtpServer(socketserver.BaseRequestHandler)