開發環境:vc++6.0
windows socket udp開發函式介紹:
int recvfrom(socket s,char far * buf,int len,int flags,struct sockaddr far * from,int far * fromlen);
說明:
1 socket s:套接字
2 char far* buf:接受資料緩衝區
3 int len:接受資料緩衝區大小
4 int flags:該引數影響recvfrom()的行為,有以下取值:
0:無特殊行為
msg_peek:有用的資料被複製到接受緩衝區內,但沒有從系統緩衝區中將其刪除。
msg_oob:表示處理帶外資料。
5 struct sockaddr far * from:該引數返回傳送資料的主機位址
6 int far * fromlen:位址長度
7 成功返回接受資料位元組數,失敗則返回socket_error錯誤
int sendto(socket s,const char far* buf,int len,int flags,const struct sockaddr far* to,int tolen);
說明:
1 socket s:套接字
2 const char far* buf:傳送資料緩衝區
3 int len:接受資料緩衝區大小
4 int flags:該引數影響sendto()的行為,有以下取值:
0:無特殊行為
msg_dontroute:傳輸層不要將資料路由出去
msg_oob:該資料應該被帶外傳送
5 const struct sockaddr far* to:接受資料主機的位址
6 int tolen:主機位址的大小
其他函式與tcp一致,請見:
開發例項:
客戶端向伺服器傳送「myudp」,伺服器接收到顯示在螢幕上
// server
#include "stdafx.h"
#define buf_size 64
#includeint main(int argc, char* argv)
//建立套接字
s = socket(af_inet,sock_dgram,0);
if(s == invalid_socket)
//繫結套接字
seraddr.sin_family = af_inet;
seraddr.sin_addr.s_un.s_addr = htonl(inaddr_any);
seraddr.sin_port = htons((short)5000);
if(bind(s,(sockaddr *)&seraddr,sizeof(seraddr)) == socket_error)
//接受並顯示資料
int nclientlen = sizeof(clientaddr);
zeromemory(buf,buf_size);
if(recvfrom(s,buf,buf_size,0,(sockaddr *)&clientaddr,&nclientlen) == socket_error)
printf("%s \n",buf);
cin.get();
return 0;
}
// client
#include "stdafx.h"
#define buf_size 64
#includeint main(int argc, char* argv)
//建立套接字
s = socket(af_inet,sock_dgram,0);
if(s == invalid_socket)
//傳送資料
zeromemory(buf,buf_size);
strcpy(buf,"myudp");
seraddr.sin_family = af_inet;
seraddr.sin_addr.s_un.s_addr = inet_addr("192.168.1.171");
seraddr.sin_port = htons((short)5000);
int nservaddlen = sizeof(seraddr);
if(sendto(s,buf,buf_size,0,(sockaddr*)&seraddr,nservaddlen) == socket_error)
printf("%s",buf);
closesocket(s);
wsacleanup();
cin.get();
return 0;
}
SpringBoot Angular開發實戰一
歪棗網採用前後臺分離設計模式,前端web採用開源的angular框架,後端採用springboot框架 redis快取。資料介面主要用到了 資料 歷史資料等介面。web整體設計介面如下,對技術有興趣的可以一起 交流。左側為選單樹,主要分為兩大類。右側主要為api介面資訊,介面資訊包括請求入參 返回引...
Android遊戲開發之旅(十四) 遊戲開發實戰一
從今天開始android123將開始帶領大家進入android遊戲開發實戰篇,本次我們首個遊戲為2d的基於su ceview的類似橫版卷軸遊戲。第一天我們說下需要做哪些準備 一 遊戲地圖編輯器,在j2me時代我們可能都是用gif分割多幀或bmp上放置多個通過減少檔案頭來壓縮體積,但是在android...
微信支付開發實記
詳細文件可以看這裡 整個流程,服務端需要做的有三件事。前端支付按鈕被觸發後,服務端要去呼叫 統一下單 介面,把預付單資訊 支付引數和引數簽名返回給前端。前端根據這些引數喚起支付。提供乙個查詢介面,讓前端再次確認是否支付成功。介面 引數巨多,具體還是看文件 我們不能直接把呼叫統一下單介面返回的簽名返回...