樓上已經把如何建立socket說明了,我只講壹下數據封裝和傳輸過程:
1、UDP?137服務已經啟動,並且會回應接受的數據包;
2、發送端的應用準備發送的數據;
3、調用socket,指明目標地址和端口(137),源地址和端口可以指定,也可以忽略;
4、socket封裝UDP包,增加UDP包頭,進而封裝IP包,增加IP包頭;
5、socket調用底層驅動(鏈路層),將IP包封裝成物理鏈路上傳輸的幀,以以太網為例,會增加幀頭,包括源MAC和目標MAC,當然中間會用到ARP,解析出IP和MAC的對應關系,由協議棧完成,應用可以不必理會;
6、底層的數據幀通過物理鏈路傳輸到對方;
7、對方接收後,反過來從底層向上層,逐漸剝去幀頭、IP頭、UDP頭,得到實際的數據,並根據UDP頭部的目標端口,傳送給上層的應用,137端口服務;
8、137端口服務處理後,反後頭來,發送回應數據,發送過程同上。