网络

一、TCP\IP协议

  1.TCP\IP协议分层

    (1)四层(七层):链路层(物理层、数据链路层)、网络层(网络层)、传输层(传输层)、应用层(会话层、表示层、应用层)

二、socket

#创建tcp  socket

import socket

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

sendData = 'hahaha'; s.sendto(b
'hahaha', ('192.168.1.1', 8080))          (python3中)
s.sendto(sendData.encode('utf-8'), ('192.168.1.1', 8080))  (python3中)
#创建udp socket import socket s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  1.udp绑定信息

from socket import *

#1. 创建套接字
udpSocket = socket(AF_INET, SOCK_DGRAM)

#2. 绑定本地的相关信息,如果一个网络程序不绑定,则系统会随机分配
bindAddr = ('', 7788) # ip地址和端口号,ip一般不用写,表示本机的任何一个ip
udpSocket.bind(bindAddr)

#3. 等待接收对方发送的数据
recvData = udpSocket.recvfrom(1024) # 1024表示本次接收的最大字节数

#4. 显示接收到的数据
print recvData

#5. 关闭套接字
udpSocket.close()
udp绑定信息

   2.udp广播

from socket import *
import sys

dest = ("<broadcast>", 7788)

udp = socket("AF_INET", "SOCK_DGRAM")

udp.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)

s.sendto("haha", dest)
udp广播

三、tcp

  1.服务器端

from socket import *

tcpSocket = socket(AF_INET, SOCK_STREAM)

tcpSocket.bind(("", 8899))

tcpSocket.listen(5)

#newSocket表示新的客户端,clientAddr表示新的客户端的ip、端口
newSocket, clientAddr = tcpSocket.accept()

recvData = newSocket.recv(1024)

print("%s:%s"%(str(clientAddr), recvData))

newSocket.close()
tcpSocket.close()

   2.客户端

from socket import *

tcpSocket = socket("AF_INET", SOCK_STREAM)

addr = ("192.168.1.1", 7878)

# 连接服务器
tcpSocket.connect(addr)

sendData = input("请输入要发送的数据:")

# 发送数据
tcpSocket.send(sendData)

# 接收服务器发送的数据
recvData = tcpSocket.recv(1024)

tcpSocket.close()

 

posted @ 2018-02-04 22:15  Leur  阅读(169)  评论(0编辑  收藏  举报