null的专栏

Keep your eyes open and your feet moving forward. You'll find what you need.

Python基础——网络编程

在网络编程中主要是使用Socket(套接字)进行编程,套接字相当于应用程序访问下层网络的服务的接口,使用Socket可以是得不同主机之间进行通信,从而实现数据交换。

1、Socket工作方式

套接字在工作的时候连接的两端分别为客户端和服务器端,对于客户端和服务器端的工作方式是不一样的。

对于服务器端,服务器程序会在一个端口上监听服务请求,该服务器进程是一直存在的,当有客户端请求访问时,服务器进程会和客户端进程进行通信。

在Python中的套接字模块是socket模块。

2、服务器端

在上述的Socket工作原理中,服务器端程序会在一个端口上监听请求服务,当有客户端请求访问时,才和客户端进程进行通信。在Python中提供的socket模块可以较为方便的实现基本的原理。对于服务器端,当生成了套接字对象后,要实现与客户端进行通信,有如下的一些步骤:

  • 调用bind()方法绑定一个套接字端口地址
  • 使用listen()方法对该端口进行客户端请求的监听
  • 当有客户端请求时,通过accept()方法生成一个连接对象,通过该连接对象发送和接受数据
  • 当数据传输完毕,调用close()方法将生成的连接关闭

利用Python实现一个简单的服务器端程序:

#coding:UTF-8

import socket

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

s.bind(('127.0.0.1', 1234))

s.listen(10)

while True:
    c, addr = s.accept()

    print "client address: ", addr
    c.send("Welcome!!!")

    c.close()

3、客户端

与服务器端相对应,客户端请求服务器端的访问,当服务器端接受了客户端的请求后,便可以与服务器端进行通信。客户端程序在生成套接字对象后的基本过程如下:

  • 调用bind()方法绑定自己的请求套接字地址(该步骤可选)
  • 调用connect()方法连接服务器端的进程
  • 当连接成功后,可使用send()方法发送数据,使用recv()函数接收数据
  • 当数据传输结束后,可调用close()方法关闭连接

利用Python实现一个简单的客户端程序:

#coding:UTF-8

import socket

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

s.bind(('127.0.0.1', 2345))

s.connect(('127.0.0.1', 1234))#连接的是主机的地址和端口地址

info = s.recv(1024)
print info

s.close()

运行结果如下:

  • 服务器端

这里写图片描述

  • 客户端

这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/google19890102/article/details/51549686
个人分类: Python
上一篇python——时间与时间戳之间的转换
下一篇社团划分——有向图的Label Propagation算法
想对作者说点什么? 我来说一句

python 网络编程网络编程基础

2012年07月13日 22.76MB 下载

Python网络编程 第三版

2017年01月13日 3.71MB 下载

Foundations of Python Network Programming

2017年08月28日 5.08MB 下载

flask python

2014年03月07日 872KB 下载

没有更多推荐了,返回首页

关闭
关闭