socket編程的教材

時間:2022-07-04 12:02:05 教材

socket編程的教材

  特別為需要方法編程學習的朋友收集整理的,僅供參考。內容如下:

  socket編程的教材網上搜羅下還是很多的,思路基本上也是一樣的,程序分兩部分客戶端和服務器端,下面是小編為大家搜索整理的C語言socket編程的方法,希望大家能有所收獲!

  第一部分 服務器端

  一、創建服務器套接字(create)。

  二、服務器套接字進行信息綁定(bind),并開始監聽連接(listen)。

  三、接受來自用戶端的連接請求(accept)。

  四、開始數據傳輸(send/receive)。

  五、關閉套接字(closesocket)。

  socket接收、發送代碼

  1 SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);

  2 char sendBuf[50];

  3 sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));

  4 send(sockConn,sendBuf,strlen(sendBuf)+1,0);

  5 char recvBuf[50];

  6 recv(sockConn,recvBuf,50,0);

  7 printf("%s ",recvBuf);

  8 closesocket(sockConn);

  第二部分 用戶端

  一、創建用戶套接字(create)。

  二、與遠程服務器進行連接(connect),如被接受則創建接收進程。

  三、開始數據傳輸(send/receive)。

  四、關閉套接字(closesocket)。

  客戶端代碼

  1 SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);

  2

  3 SOCKADDR_IN addrSrv;

  4 addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

  5 addrSrv.sin_family=AF_INET;

  6 addrSrv.sin_port=htons(6000);

  7 connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

  8 send(sockClient,"hello",strlen("hello")+1,0);

  9 char recvBuf[50];

  10 recv(sockClient,recvBuf,50,0);

  11 printf("%s ",recvBuf);

  服務器端代碼和客戶端主要代碼基本上都是上面的程序,

  在應用的過程中有幾點要根據自己的需求更改,

  1、127.0.0.1是服務器端的IP地址,根據自己的IP段進行修改;

  2、htons(6000)是端口號根據具體設定進行修改,我們PLC端口號用到是9600,這點我們需要修改成9600。

  網上好多程序都是VC6寫的,在參考過程中葉遇到了問題,程序LICK出現了如下錯誤

  unresolved external symbol __imp__closesocket@4

  解決辦法:

  這是由于VC庫中沒有加如 ws2_32.lib 所致。

  解決方案一:程序代碼中加入#pragma comment(lib, "Ws2_32.lib")

  解決方案二:在projectsettinglink 中object/library modules加入 ws2_32.lib

  這個是VC6的解決方案,我用的VS2008找了一下

  上個圖吧,VS2008里設置,工程屬性-鏈接器-命令行-附加選項添加 ws2_32.lib就ok了。

  編譯通過后,服務器端,可以看到hello,

  客戶端,可以看到welcome 127.0.0.1 to here!

【socket編程的教材】相關文章:

音樂對編程的影響07-10

數控編程報告03-30

舊教材與新教材的作文07-03

舊教材與新教材作文07-03

微機課電腦編程的日記07-04

電腦編程小能人作文07-02

舊教材與新教材小學作文07-04

送給程序員的編程名言07-12

計算機編程就業前景07-01

編程專業實習周報(精選5篇)07-29