python socket编程(初级)

客户端编程:

  首先要创建socket,用python中socket模板中的socket函数就可以了

  import socket

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

  socket函数后面要带两个参数:

    Address Family : 可以选择AF_INET(用于Internet进程间通信)或者AF_UNIX(同一台机器间通信)

    Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者SOCK_DGRAM(数据报套接字,主要用于 UDP 协议)

  我们知道了服务器的IP地址和端口号,我就可以用connect函数连接

  s.connect(IP,PORT)

  连接上了之后,我们就可以向服务器发送数据了,

  message = data  # data是你要发送的数据

  发送完之后就,我们就要接受数据

  reply = s.recv(1024)  #1024是一次可以接受的数据大小

  最后我们把连接端口就可以了

  s.close()

客服端全部的代码如下:

 1 #!usr/bin/env python
 2 #coding:utf-8
 3 
 4 import socket
 5 
 6 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
 7 print 'Socket Created'
 8 host = 'www.google.com'
 9 port = 80
10 remote_ip = socket.gethostbyname(host)              
11 #获取host的IP地址,gethostbyname是在你不知道网页的IP地址的情况下可以获取网址的IP,一般在自己电脑上的时候是不用的
12 print remote_ip
13 s.connect((remote_ip,port))
14 message = 'GET / HTTP/1.1\r\n\r\n'                  
15 #这是一个HTTP请求网页内容的命令
16 s.sendall(message)
17 print 'Message send successfully'
18 reply = s.recv(4096)
19 print reply
20 s.close()

 

服务器和客户端有点不一样

服务器主要做的是:

1. 打开socket;

2.绑定到特定的地址和端口上;

3.监听连接;

4.建立连接;

5.接受或者发送数据

具体代码如下:

#!usr/bin/env python
#coding:utf-8

import socket

HOST = '127.0.0.1'
PORT = 8888
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(5)
while True:
             conn,addr = s.accept()
             data = conn.recv(1024)
             conn.sendall('welcome !')
             print data
             if data == 'exit':   如果接受的data = exit的话就退出循环
                          break
conn.close()
s.close()

 

这样就差不多了,剩下的就是一些细节方面的问题了. 我一开始写的时候写了好久,照着别人的写总是会出错,关键是别人写的却可以运行,心塞!

 

主要参考的是:

http://www.cnblogs.com/hazir/p/python_socket_programming.html

 

 

    

posted @ 2016-04-10 19:10  睚一  阅读(194)  评论(0编辑  收藏  举报