wince下socket程式設計
wince 不支援win32中socket非同步類(那個mfc類忘記啥名字了)
在軟體開發中「網路程式設計」是必不可少的基本功了;本文所講的
socket
程式設計也就是網路程式設計中的一種形式;當然你如果想問我什麼叫「
socket
」,很遺憾的是我也不能準確的告訴你!但我們可以確定的是
sock
並不是一種網路協議,它只是乙個網路程式設計介面,也就是說,它不是協議,但是它可以訪問很多種網路協議,你可以把他當作一些協議的封裝。
socket
程式設計涉及
socket
服務端與客戶端程式設計;與
vc6下的
socket
程式設計一樣
(vc6
用ws2_32.lib
庫,而wince
則用ws2.lib庫)
,服務端與客戶端程式設計都需經歷如下步驟:
服務端步驟:1
:載入套接字型檔,建立套接字
(wsastartup()/socket());
2:繫結套接字到乙個
ip位址和乙個埠上
(bind());
3:將套接字設定為監聽模式等待連線請求
(listen());
4:請求到來後,接受連線請求,返回乙個新的對應於此次連線的套接字
(accept());
5:用返回的套接字和客戶端進行通訊
(send()/recv());
6:返回,等待另一連線請求; 7
:關閉套接字,關閉載入的套接字型檔
(closesocket()/wsacleanup())。
客戶端步驟:1
:載入套接字型檔,建立套接字
(wsastartup()/socket()); 2
:向伺服器發出連線請求
(connect()); 3
:和伺服器端進行通訊
(send()/recv()); 4
:關閉套接字,關閉載入的套接字型檔
(closesocket()/wsacleanup())。
簡單服務端例子如下:
#include
#pragma
comment( lib, "ws2.lib" )
void
testsocketserver( void )
socket socksrv=socket(af_inet,sock_stream,0);
sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr=htonl(inaddr_any);
addrsrv.sin_family=af_inet;
addrsrv.sin_port=htons(6000);
bind(socksrv,(sockaddr*)&addrsrv,sizeof(sockaddr));
listen(socksrv,5);
sockaddr_in addrclient;
int len=sizeof(sockaddr);
while(1)
} 簡單客戶端例子如下:
#include
#pragma
comment( lib, "ws2.lib" )
void
testsocketclient( void )
socket sockclient=socket(af_inet,sock_stream,0);
sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr=inet_addr("127.0.0.1");
addrsrv.sin_family=af_inet;
addrsrv.sin_port=htons(6000);
connect(sockclient,(sockaddr*)&addrsrv,sizeof(sockaddr));
send(sockclient,"hello",strlen("hello")+1,0);
char recvbuf[50];
recv(sockclient,recvbuf,50,0);
closesocket(sockclient);
wsacleanup(); }
上面我們簡單的講述了wince下socket程式設計的相關步驟與實現例子,當然在實際的應用中光靠這個些是遠夠的,因為還有更的東西需要我們去處理(比如出錯了怎麼辦?怎麼設定相關超時等);下面我本人寫的乙個簡單tcp客戶端類,本類適應與wince、winmobile、pocketpc等平台;至於本類的使用方法請台見本文對應例子**;本類所在標頭檔案內容如下:
//stcpclient.h
#ifndef
******_tcp_client_h
#define
******_tcp_client_h
#include
#define
tcpclient_status_notinit0
#define
tcpclient_status_inited1
#define
tcpclient_status_connected 2
#define
tcpclient_status_closed3
typedef
struct tcp_kpalive,*ptcp_keepalive;
class
cstcpclient ;
#endif
WinCE下Socket基本函式
在軟體開發中 網路程式設計 是必不可少的基本功了 本文所講的socket程式設計也就是網路程式設計中的一種形式 當然你如果想問我什麼叫 socket 很遺憾的是我也不能準確的告訴你!但我們可以確定的是sock並不是一種網路協議,它只是乙個網路程式設計介面,也就是說,它不是協議,但是它可以訪問很多種網...
windows 下socket 程式設計
111111windows 下用microsoft visual studio 2005 編寫socket程式 windows 下實現同步socket程式設計,和linux下有許多相同的地方,基本的socket流程完全相同,所有的socket 相關的函式都在 winsock.h 中宣告 還有wind...
linux下socket程式設計
一 什麼是socket socket可以看成是使用者程序與核心網路協議棧的程式設計介面。socket不僅可以用於本機的程序間通訊,還可以用於網路上不同主機的程序間通訊。socket api是一層抽象的網路程式設計介面,適用於各種底層網路協議,如ipv4 ipv6。struct sockaddr in...