VS下C 網路程式設計

2021-08-21 06:29:14 字數 4689 閱讀 5184

提供了強制資料立即傳送的操作指令

push,tcp軟體收到該操作指令後,就立即將本段資料傳送出去,而不必等待傳送緩衝區滿;

#include

#pragma

comment(lib, "ws2_32.lib")

int_tmain(int

argc, _tchar* argv)

// socket()

socket socksrv = socket(af_inet, sock_stream, 0);

// 初始化ip和埠資訊

sockaddr_in addrsrv;

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(port); // 1024

以上的埠號

addrsrv.sin_addr.s_un.s_addr = htonl(inaddr_any);

// bind()

if (bind(socksrv, (lpsockaddr)&addrsrv, sizeof(sockaddr_in)) == socket_error)

// listen()

if (listen(socksrv, 10) == socket_error)

// 客戶端資訊

sockaddr_in addrclient;

int len = sizeof(sockaddr);

// 開始監聽

printf("

服務端啟動成功......開始監聽...\n");

while (1)

printf("

與客戶端建立連線......ip:[%s]\n", inet_ntoa(addrclient.sin_addr));

// 傳送資料

if (send(sockconn, buf, sizeof(buf), 0) == socket_error)

char recvbuf[100];

memset(recvbuf, 0, sizeof(recvbuf));

// 接收資料

recv(sockconn, recvbuf, sizeof(recvbuf), 0);

printf("

收到資料:%s\n", recvbuf);

closesocket(sockconn);

}// 

關閉套接字

closesocket(socksrv);

wsacleanup();

system("pause");

return 0;

}#include

#pragma

comment(lib, "ws2_32.lib")

int_tmain(int

argc, _tchar* argv)

// 初始化ip和埠資訊

sockaddr_in addrsrv;

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(port);

addrsrv.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");

// socket()

socket sockclient = socket(af_inet, sock_stream, 0);

if (socket_error == sockclient)

// 向伺服器發出連線請求

if (connect(sockclient, (struct

sockaddr*)&addrsrv, sizeof(addrsrv)) == invalid_socket)

else

// 關閉套接字

closesocket(sockclient);

wsacleanup();

return 0;

}定義控制台應用程式的入口點。

//#include

"stdafx.h"

#include

#include

#pragma

comment(lib, "ws2_32.lib")

int_tmain(int

argc, _tchar* argv)

// 初始化ip和埠資訊

sockaddr_in addrsrv;

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(port);

addrsrv.sin_addr.s_un.s_addr = htonl(inaddr_any);

// socket()

socket sockclient = socket(af_inet,sock_dgram, 0);

if (socket_error == sockclient)

// bind()

if (bind(sockclient, (lpsockaddr)&addrsrv, sizeof(sockaddr_in)) == socket_error)

sockaddr_in addrclnt;

int nlen = sizeof(sockaddr);

// 訊息

char szmsg[1024];

memset(szmsg, 0, sizeof(szmsg));

// 等待客戶請求到來

printf("

服務端啟動成功......等待客戶傳送資料...\n");

while (1)

}// 

上面為無線迴圈,以下**不會執行

// 關閉套接字

closesocket(sockclient);

wsacleanup();

return 0;

}定義控制台應用程式的入口點。

//#include

"stdafx.h"

#include

#include

#pragma

comment(lib, "ws2_32.lib")

int_tmain(int

argc, _tchar* argv)

// socket()

socket sockclient = socket(af_inet, sock_dgram, 0);

if (socket_error == sockclient)

// 初始化ip和埠資訊

sockaddr_in addrsrv;

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(port);

addrsrv.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");

int nlen = sizeof(sockaddr);

// 傳送資料

char szmsg[1024];

memset(szmsg, 0, sizeof(szmsg));

sendto(sockclient, szmsg, sizeof(szmsg), 0, (sockaddr*)&addrsrv, nlen);

// 傳送資料

while (1)

// 傳送資料

sendto(sockclient, szmsg, sizeof(szmsg), 0, (sockaddr*)&addrsrv, nlen);

// 清空快取

memset(szmsg, 0, sizeof(szmsg));

// 接收資料

if (socket_error != recvfrom(sockclient, szmsg, sizeof(szmsg), 0, (sockaddr*)&addrsrv, &nlen))

}// 

關閉套接字

closesocket(sockclient);

wsacleanup();

return 0;

}massage

結構體訊息

massage stmsg;

memset(stmsg.strmsg, 0, sizeof(stmsg.strmsg));

stmsg.nid = 1001;

strcpy(stmsg.strmsg, "struct string");

// ...

sendto(sockclient, (char*)&stmsg, sizeof(stmsg) + 1, 0, (sockaddr*)&addrclnt, nlen);

結構體massage stmsg;

memset(stmsg.strmsg, 0, sizeof(stmsg.strmsg));

memcpy(&stmsg, szmsg, sizeof(stmsg) + 1);

printf("

接收方:%d\t%s\n", stmsg.nid, stmsg.strmsg);

struct

photo

sendto(sockclient, (char*)&stphoto, sizeof(stphoto), 0, (sockaddr*)&addrsrv, nlen);

}正在接收檔案......\n");

while (1)

int n = fwrite(stphoto.buf, 1, stphoto.nsize, fp2);

//printf("write %d byte\n", n);}}

VS下QT程式設計

參考 1 ui介面,開啟qt designer可以進行編輯,有點像做安卓的layout 2 ui介面所對應的 h 檔案,裡面有你再ui介面各種控制項的 實現 3 工程的 h 檔案,可以宣告你想要實現的操作,新增按鍵對應 槽函式 4 cpp檔案了,可以定義在 h 中宣告的函式,實現對應槽函式。將訊號與...

網路程式設計下

設定和獲得套介面選項 獲得套介面選項 int getsockopt int sockfd,int level,int optname,void optval,socklen t opteln 設定套介面選項 int setsockopt int sockfd,int level,int optnam...

Linux下C語言Socket網路程式設計

這裡打算寫乙個在linux系統下執行的socket服務端,然後在win下使用網路助手與其連線,達到資料回顯的功能。廢話不多說了,咱們現在開始。建立socket。將建立socket時返回的套接字描述符與伺服器ip位址和埠進行繫結。開始監聽連線到該伺服器的客戶端。當有客戶端請求與該服務端程式進行連線時,...