① C語言如何用代碼模擬手機去訪問手機網站抓取數據
WebClient
client
=
new
WebClient
();
client.Headers.Add
("user-agent",
"Mozilla/4.0
(compatible;
MSIE
6.0;
Windows
NT
5.2;
.NET
CLR
1.0.3705;)");
更改user-agent為手機瀏覽器的。
模擬谷歌Android:
user-agent="Mozilla/5.0
(Linux;
U;
Android
2.2;
en-us;
Nexus
One
Build/FRF91)
AppleWebKit/533.1
(KHTML,
like
Gecko)
Version/4.0
Mobile
Safari/533.1"
模擬蘋果iPhone:
user-agent="Mozilla/5.0
(iPad;
U;
CPU
OS
3_2_2
like
Mac
OS
X;
en-us)
AppleWebKit/531.21.10
(KHTML,
like
Gecko)
Version/4.0.4
Mobile/7B500
Safari/531.21.10"
② 手機操作系統用什麼語言編的是C語言嗎
不同的手機操作系統是基於不同的編程語言開發的。
③ C語言實現 獲取linux系統正在連接的無線網路的 網路名,和加密方式
第一步: 下載 aircrack
最簡單的方法就是找開Ubuntu 軟體管理中心 , 在這里直查找 aircrack ,找到後直接下載安裝就可以了,非常方便。
第二步:啟動無線網卡的監控模式
sudo airmon-ng start wlan0 啟動無線 網卡 的監控模式。
第三步:查找你周圍的無線網路
sudo airomp-ng mon0
會出現你周圍的無線網路列表
如果樓主有興趣有毅力的話,可以把aircrack源代碼讀玩.
官方網站為
http://www.aircrack-ng.org
④ 如何用c語言實現訪問網路
首先你要熟悉套接字的使用,然後要對FTP協議,
包括其中的數據包,通信過程有一定了解。
C語言開發網路程序一般都是用socket套接字這一套函數,你可以去看看資料
⑤ 想學慣用c語言控制pc或者手機的WiFi介面或者串口,給單片機通訊需要學習什麼
單片機端:使用WiFi模塊連接到網路,只要能連接了網路,通訊什麼的就屬於應用層的東西了,無非就是發送,監聽接受。
電腦、手機端:完全沒有必要操作底層硬體,直接在應用層上收發數據,具體怎麼發送接受的不用你去管,那是操作系統的事。語言現在好像流行C#做這些小應用。
⑥ c語言如何檢測網路是否連接
1、如果對方斷開連接的話,那麼readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值應該是0,可以根據返回值判斷。
2、recv函數返回值說明
recv函數
int recv( SOCKET s, char FAR *buf, int len, int flags);
不論是客戶還是伺服器應用程序都用recv函數從TCP連接的另一端接收數據。該函數的第一個參數指定接收端套接字描述符; 第二個參數指明一個緩沖區,該緩沖區用來存放recv函數接收到的數據; 第三個參數指明buf的長度; 第四個參數一般置0。
這里只描述同步Socket的recv函數的執行流程。當應用程序調用recv函數時,
(1)recv先等待s的發送緩沖中的數據被協議傳送完畢,如果協議在傳送s的發送緩沖中的數據時出現網路錯誤,那麼recv函數返回SOCKET_ERROR,
(2)如果s的發送緩沖中沒有數據或者數據被協議成功發送完畢後,recv先檢查套接字s的接收緩沖區,如果s接收緩沖區中沒有數據或者協議正在接收數 據,那麼recv就一直等待,直到協議把數據接收完畢。當協議把數據接收完畢,recv函數就把s的接收緩沖中的數據到buf中(注意協議接收到的數據可能大於buf的長度,所以 在這種情況下要調用幾次recv函數才能把s的接收緩沖中的數據完。recv函數僅僅是數據,真正的接收數據是協議來完成的), recv函數返回其實際的位元組數。如果recv在時出錯,那麼它返回SOCKET_ERROR;如果recv函數在等待協議接收數據時網路中斷了,那麼它返回0。 默認 socket 是阻塞的 解阻塞與非阻塞recv返回值沒有區分,都是 <0 出錯 =0 連接關閉 >0 接收到數據大小,
特別:返回值<0時並且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情況下認為連接是正常的,繼續接收。只是阻塞模式下recv會阻塞著接收數據,非阻塞模式下如果沒有數據會返回,不會阻塞著讀,因此需要循環讀取)。
返回說明: 成功執行時,返回接收到的位元組數。另一端已關閉則返回0。失敗返回-1,errno被設為以下的某個值 EAGAIN:套接字已標記為非阻塞,而接收操作被阻塞或者接收超時 EBADF:sock不是有效的描述詞 ECONNREFUSE:遠程主機阻絕網路連接 EFAULT:內存空間訪問出錯 EINTR:操作被信號中斷 EINVAL:參數無效 ENOMEM:內存不足 ENOTCONN:與面向連接關聯的套接字尚未被連接上 ENOTSOCK:sock索引的不是套接字 當返回值是0時,為正常關閉連接;
思考:當對側沒有send,即本側的套接字s的接收緩沖區無數據,返回值是什麼(EAGAIN,原因為超時,待測)
⑦ 如何用C語言獲得本機IP地址
structin_addraddr;
hostent*pHost=::gethostbyname("localhost");//在此寫入你自己電腦主機名字
switch(pHost->h_addrtype){
caseAF_INET:
printf("internet網路地址類型(AF_INET) ");
break;
caseAF_INET6:
printf("internet網路地址類型(AF_INET) ");
break;
caseAF_NETBIOS:
printf("netbios網路地址類型(AF_NETBIOS) ");
break;
default:
printf("其它地址類型%d ",pHost->h_addrtype);
break;
}
printf(" 地址長度:%d(位元組) ",pHost->h_length);
addr.s_addr=*(u_long*)pHost->h_addr_list[0];
printf(" 第一個IP地址為:%s ",inet_ntoa(addr));
⑧ 如何用C語言檢測網路是否連接上、已連接、已斷開狀態
如果對方斷開連接的話,那麼readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值應該是0,可以根據返回值判斷
還有一種辦法,就是做一個心跳檢測,定時發送消息,如果發送失敗就知道對方不在了