关闭

Python基础——网络编程

标签: 网络编程pythonsocket
5760人阅读 评论(1) 收藏 举报
分类:

在网络编程中主要是使用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()

运行结果如下:

  • 服务器端

这里写图片描述

  • 客户端

这里写图片描述

0
0
查看评论

《Python网络编程基础》笔记(一)----底层网络

一. 客户端,服务器网络 1.TCP是一些协议的合集。Internet是在一些共享的线路上发送数据的。 2.TCP把你要发送的数据流分解成很多小信息包在Internet上传输。 为了实现这个信息包的机会,TCP需要 (1)识别远程机器(IP地址) (2)识别机器的通信程序(端口号)...
  • chchlh
  • chchlh
  • 2014-07-21 01:49
  • 5678

网络编程基础概述

网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习。 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其...
  • w627782664
  • w627782664
  • 2011-12-27 19:59
  • 6527

《python网络编程基础》笔记(未完待续)

1.客户/服务器网络介绍: 1.1基本客户端: # -*-coding:utf-8-*- import socket, sys #端口 port = 70 #IP或者域名 host = sys.argv[1]#"127.0.0.1" #文件路径 filename = sys.a...
  • u013055678
  • u013055678
  • 2016-10-18 19:52
  • 1393

java网络编程基础知识

java网络编程基础知识 一、网络基本概念 1、计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。 2、网络体系结构:国际标准化组织ISO于l9
  • wfgeqgeq
  • wfgeqgeq
  • 2011-09-19 19:24
  • 3383

全栈必备 网络编程基础

或许,老码农说的都是错的,了解了所谓的网络基础,也不一定写出漂亮的代码,不了解所谓的网络基础,也不一定写不出漂亮的代码,全当他自言自语吧。
  • wireless_com
  • wireless_com
  • 2017-01-30 00:00
  • 3923

JavaScript---网络编程(1)-介绍、变量、运算符与语句

JavaScript也是一种编程语言。并不是Java的分支哦。 可以直接在浏览器中运行的编程语言。JavaScript 的历史故事: 1、JavaScript语言与名称的由来(Netscape,Sun Java) 最开始是叫LiveScript的~有一个小故事,有兴趣的朋友可以u百度一下。 ...
  • qq_26525215
  • qq_26525215
  • 2016-05-29 18:39
  • 6092

Java基础之网络编程知识点总结

网络编程----Java语言涵盖的领域很广,对于网络方面,java也是相当棒的,java也是可以完成网络通讯的功能的
  • u011460827
  • u011460827
  • 2014-12-01 22:00
  • 1751

Android网络编程基础(一) - 基础知识

内容介绍:Android网络编程基础 博客地址:http://blog.csdn.net/kevindgk 版权声明:本文为原创文章,未经允许不得转载 联系方式:815852777@qq.com 前言 推荐书籍 基础知识 计算机网络概述 OSI参考模型和TCPIP模型 IP地址和...
  • KevinDGK
  • KevinDGK
  • 2016-08-16 17:45
  • 2312

socket网络编程的一些基础知识

目录: 1) 什么是套接字? 2) Internet 套接字的两种类型 3) 网络理论 4) 结构体 5) 本机转换 6) IP 地址和如何处理它们 7) socket()函数 8) bind()函数 9) connect()函数 10) listen()函数 11) accept()函数 12) ...
  • roger_77
  • roger_77
  • 2006-12-22 11:17
  • 6801

java 之 API-网络编程

网络编程概述计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。 网络模型...
  • LiuMiao1128
  • LiuMiao1128
  • 2016-11-19 15:15
  • 279
    个人声明

    欢迎大家加群,探讨与机器学习相关技术相关的话题:


    101620539


    学习网站:www.wanwenonline.cn

    博客的主要内容主要是自己的学习笔记,并结合个人的理解,供各位在学习过程中参考,若有疑问,欢迎提出;若有侵权,请告知博主删除,原创文章转载还请注明出处。

    -----------------

    我写的书:

    Python机器学习算法

    购买链接:

    京东-Python机器学习算法
    个人资料
    • 访问:1458509次
    • 积分:11444
    • 等级:
    • 排名:第1621名
    • 原创:155篇
    • 转载:1篇
    • 译文:1篇
    • 评论:606条
    博客专栏
    联系我
    Email:zhaozhiyong1989@126.com

    最新评论