- C語言socket編程使用方法簡(jiǎn)介 推薦度:
- 相關(guān)推薦
C語言socket編程使用方法
C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。以下是小編為大家搜索整理的C語言socket編程使用方法,歡迎閱讀!更多精彩內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
第一部分 服務(wù)器端
一、創(chuàng)建服務(wù)器套接字(create)。
二、服務(wù)器套接字進(jìn)行信息綁定(bind),并開始監(jiān)聽連接(listen)。
三、接受來自用戶端的連接請(qǐng)求(accept)。
四、開始數(shù)據(jù)傳輸(send/receive)。
五、關(guān)閉套接字(closesocket)。
socket接收、發(fā)送代碼
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\n",recvBuf);
8 closesocket(sockConn);
第二部分 用戶端
一、創(chuàng)建用戶套接字(create)。
二、與遠(yuǎn)程服務(wù)器進(jìn)行連接(connect),如被接受則創(chuàng)建接收進(jìn)程。
三、開始數(shù)據(jù)傳輸(send/receive)。
四、關(guān)閉套接字(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\n",recvBuf);
服務(wù)器端代碼和客戶端主要代碼基本上都是上面的程序,
在應(yīng)用的過程中有幾點(diǎn)要根據(jù)自己的需求更改,
1、127.0.0.1是服務(wù)器端的IP地址,根據(jù)自己的IP段進(jìn)行修改;
2、htons(6000)是端口號(hào)根據(jù)具體設(shè)定進(jìn)行修改,我們PLC端口號(hào)用到是9600,這點(diǎn)我們需要修改成9600。
網(wǎng)上好多程序都是VC6寫的,在參考過程中葉遇到了問題,程序LICK出現(xiàn)了如下錯(cuò)誤
unresolved external symbol __imp__closesocket@4
解決辦法:
這是由于VC庫中沒有加如 ws2_32.lib 所致。
解決方案一:程序代碼中加入#pragma comment(lib, "Ws2_32.lib")
解決方案二:在project\setting\link 中object/library modules加入 ws2_32.lib
這個(gè)是VC6的解決方案,我用的VS2008找了一下
上個(gè)圖吧,VS2008里設(shè)置,工程屬性-鏈接器-命令行-附加選項(xiàng)添加 ws2_32.lib就ok了。
編譯通過后,服務(wù)器端,可以看到hello,
客戶端,可以看到welcome 127.0.0.1 to here!
【C語言socket編程使用方法】相關(guān)文章:
C語言編程基礎(chǔ)03-29
C語言入門什么是編程語言03-20
如何學(xué)習(xí)C語言編程11-27
C語言設(shè)置和取得socket狀態(tài)的相關(guān)函數(shù)用法介紹04-01
C語言高效編程的4個(gè)小技巧12-09