제 3 장 - 네트워크 프로그래밍의 기본

  1 소켓 : 소켓 파일이 한 종류에 기초 AF_UNIX (초기 개발 유닉스 시스템의 주요 기능 소켓에서 주로 동일한 컴퓨터 직접 통신 복수의 프로그램)

        유닉스 시스템 중심 사상은 : 모든 파일입니다

  네트워크 소켓의 종류에 따라 2, AF_INET

  3 , TYPE :

    TCP 프로토콜 : SOCK_STREAM

UDP 프로토콜 : SOCK_DGRAM

4 TCP : 안정적인 연결 지향 지향 전송 모드 바이트 스트림

5, UDP : 연결 지향, 패킷 중심의 데이터 전송없이 신뢰할 수없는,하지만 빠르게
6 게이트웨이 : 로컬 영역 네트워크의 입구 및 출구 유사한 
랜 내의 IP 어드레스 범위 : 7 세그먼트
세그먼트까지 및 IP 주소의 서브넷 마스크 : 8, 서브넷 마스크
: 9, OSI 다섯 개 모델의
응용 계층 : http, https, ftp를
수송층 : TCP / UDP 4 개의 스위치는 4 개의 라우터
네트워크 계층 : 계층 프로토콜 라우터 IP 스위치
네트워크 링크 계층 : ARP 프로토콜 브리지 이더넷 스위치 카드
물리층 : 광섬유 케이블은 전기 신호 허브를 송신하도록
동일한 프로그램에 컴퓨터에도 PY : 오픈 파일 
B, 통신하는 방법 두 컴퓨터 : 접속 케이블
(C), 컴퓨터 통신 복수 :
EX : 1 PC (소스)는 컴퓨터 (2) (대상) 찾는
컴퓨터 (1 개) 첫 번째 송신을 (내 IP 주소, MAC 주소, IP 주소가 대상을 찾고 포함) 요청 프레임,
다른 호스트에이 정보 방송 전환
대상 호스트가 메시지를 수신 비교가 스위치를 돌려, 대상을 찾고되어야하는 자신을 발견 자신의 IP 주소, MAC 주소
IP 주소는 호스트 XXXXXX로 되돌아가되어
하나의 파형 호스트 스위치에 반환

: 지식
1. MAC 주소 : 물리적 주소가 ID 카드와 유사한, 전 세계적으로 고유 한
2, IP 주소는 : 네입니다 네트워크에서 컴퓨터의 위치를 식별하는 사이트 진수
의 IP 주소를 목적지 MAC 주소 프로토콜 취득 대상 : 3, ARP 프로토콜
4 포트 : 호스트 컴퓨터에서 각 애플리케이션의 운영체제가 임의로 지정되므로 포트
TCP 프로토콜 프로그래밍 프로세스 : 
서버가 클라이언트
오브젝트의 오브젝트 인스턴스 인스턴스화
IP 주소 및 포트
모니터가
연결 서버 클라이언트 수신
송수신기 송수신기
OFF OFF
스위치 및 라우터 차이?
주된 기능은 로컬 영역 네트워크 스위치를 구성하는 스위치는 내부 처리, 정보 포인트 멀티 도트 형태 후 파싱과의 고정 단에 송신
라우터의 주요 기능 : 최적 경로 라우터 선택 데이터 전송을위한 네트워크 간 위해
EX :
  만약 당신이 더 많은 네트워크 케이블에 연결 한 컴퓨터보다, 스위치를 사용하여야한다
  인터넷 액세스를 필요로하는 당신은 단지 하나의 외부 네트워크 IP가있는 경우,하지만 당신은 컴퓨터를 많이 가지고, 당신은 라우터를 사용할 수 있습니다
 
# 案例1 通信
import socket
import time
sk = socket.socket()  # 买了一个手机
sk.bind(('192.168.1.107',18080))    # 买了一张手机卡
sk.listen()     # 开机

sock,addr = sk.accept() # 等待朋友连接
msg_recv = sock.recv(1024)  # 接收朋友传来的bytes信息
sock.send(b'library')
print(msg_recv.decode('utf-8')) # 进行解码
time.sleep(20)
sock.close()    # 关闭电话
sk.close()      # 关机
 

 

 
import socket

class MySocket(socket.socket):      # 继承socket文件中的socket类
    def __init__(self,encoding='utf-8'):    # 给它一个默认的utf-8编码格式
        self.encoding = encoding    # 将utf-8编码格式封装给encoding
        super(MySocket, self).__init__(type=socket.SOCK_DGRAM)  # 执行父类中的__init__方法,将默认tcp协议改成udp协议

    def my_sendto(self,msg,addr):   # 定义一个发消息类
        return self.sendto(msg.encode(self.encoding),addr)  # 调用父类中的sendto方法

    def my_recvfrom(self,num):  # 定义一个接收方法
        msg_r,addr = self.recvfrom(num) # 调用父类中的recvfrom方法
        return msg_r.decode(self.encoding),addr
 

 

 

 






추천

출처www.cnblogs.com/jiujiang/p/11449598.html