C語言是一門通用計算機程式語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。以下是小編為大家搜尋整理的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(_addr));
4 send(sockConn,sendBuf,strlen(sendBuf)+1,0);
5 char recvBuf[50];
6 recv(sockConn,recvBuf,50,0);
7 printf("%sn",recvBuf);
8 closesocket(sockConn);
第二部分 使用者端
一、建立使用者套接字(create)。
二、與遠端伺服器進行連線(connect),如被接受則建立接收程序。
三、開始資料傳輸(send/receive)。
四、關閉套接字(closesocket)。
客戶端程式碼
1 SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
2
3 SOCKADDR_IN addrSrv;
4 _addr.S_un.S_addr=inet_addr("");
5 _family=AF_INET;
6 _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("%sn",recvBuf);
伺服器端程式碼和客戶端主要程式碼基本上都是上面的程式,
在應用的過程中有幾點要根據自己的需求更改,
1、是伺服器端的IP地址,根據自己的IP段進行修改;
2、htons(6000)是埠號根據具體設定進行修改,我們PLC埠號用到是9600,這點我們需要修改成9600。
網上好多程式都是VC6寫的,在參考過程中葉遇到了問題,程式LICK出現瞭如下錯誤
unresolved external symbol __imp__closesocket@4
解決辦法:
這是由於VC庫中沒有加如 ws2_ 所致。
解決方案一:程式程式碼中加入#pragma comment(lib, "Ws2_")
解決方案二:在projectsettinglink 中object/library modules加入 ws2_
這個是VC6的解決方案,我用的VS2008找了一下
上個圖吧,VS2008裡設定,工程屬性-連結器-命令列-附加選項新增 ws2_就ok了。
編譯通過後,伺服器端,可以看到hello,
客戶端,可以看到welcome to here!