當前位置:學問谷 >

校園範例 >教材 >

socket編程的教材

socket編程的教材

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

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(_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 _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("%s",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!

標籤: socket 編程 教材
  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flxy/jiaocai/qvwjj2.html