導航:首頁 > 源碼編譯 > c語言socket源碼

c語言socket源碼

發布時間:2022-02-25 16:25:26

『壹』 求一個socket聊天程序源碼 C語言的

通過socket編程自己寫一個唄,可以學習一下socket編程方面的知識

『貳』 怎樣用C語言做socket網路編程

mfc只是對socket進行了一些封裝,大部分人做網路編程都是用的原始的socket,比如如下介面都可以在c下進行調用
1.socket()
2.bind()
3.connect()
4.listen()
5.accept()
6.send() 和recv()
7.sendto() 和recvfrom()
8.close() 和shutdown()
9.getpeername()
10.gethostname()
這些介面是在Winsock2.h中定義的不是在mfc中定義的,你只需要包含Winsock2.h頭文件和Ws2_32.lib庫就可以了。

『叄』 用c語言寫個 socket tcp 的

#include <winsock2.h>
#include <stdio.h>
#include <pthread.h>
#pragma comment(lib,"ws2_32.lib")
typedef struct{
SOCKET accpt;
int lock;
}Arg;
void *transfer(void *arg)
{
Arg * info = (Arg *)arg;
SOCKET clientSock;
char recvbuf[102];
char sendBuf[] = "10";
int ret;
memcpy(&clientSock,(void*)&info->accpt,sizeof(clientSock));
info->lock =1;
while (TRUE)
{
ret = send(clientSock,sendBuf,2,0);
if (ret == -1)
{
break;
}
ret = recv(clientSock,recvbuf,102,0);
printf("%s ",recvbuf);
}
return (void *)0;
}
void* timer(void *arg)
{
time_t last = time(NULL);
time_t now;
int i = 20;
while(i--)
{
now = time(NULL);
if(now - last == 1)
{
printf("1s past! ");
last = now;
}
Sleep(500);
}
printf("timer exit. ");
return (void *)0;
}
int main(void) {
WSADATA wsaData;
SOCKET ListenSocket;
SOCKADDR_IN service,client;
int len = sizeof(client);
Arg argument;
pthread_t tid;
char sendBuf[] = "ID=2;WHAT=host";
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != NO_ERROR) {
printf("Error at WSAStartup() ");
return 1;
}
ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ListenSocket == INVALID_SOCKET) {
printf("Error at socket(): %ld ", WSAGetLastError());
WSACleanup();
return 1;
}
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("127.0.0.1");
service.sin_port = htons(27115);
if (bind( ListenSocket,
(SOCKADDR*) &service,
sizeof(service)) == SOCKET_ERROR) {
printf("bind() failed. ");
closesocket(ListenSocket);
WSACleanup();
return 1;
}
if (listen( ListenSocket, 1 ) == SOCKET_ERROR) {
printf("Error listening on socket. ");
closesocket(ListenSocket);
WSACleanup();
return 1;
}
argument.lock = 1;
printf("Waiting for client to connect... ");
pthread_create(&tid,NULL,timer,NULL);
while(TRUE){
argument.accpt = accept( ListenSocket, (SOCKADDR*)&client, &len );
if (argument.accpt == INVALID_SOCKET) {
printf("accept failed: %d ", WSAGetLastError());
closesocket(ListenSocket);
WSACleanup();
return 1;
} else {
printf("accept%s:%d ",inet_ntoa(client.sin_addr),client.sin_port);
while (!argument.lock);
argument.lock = 0;
// sendto(argument.accpt,sendBuf,sizeof(sendBuf),0,(SOCKADDR*)&client,len);
pthread_create(&tid,NULL,transfer,&argument);
//send(AcceptSocket,sendBuf,sizeof(sendBuf),0);
}
}
// No longer need server socket
closesocket(ListenSocket);
WSACleanup();
return 0;
}

發送數據格式按需求。可以發送字元串,也可以發送結構體。如果發送結構體的話,要注意序列化和反序列化。程序例子是伺服器對每個客戶端的connect動作起一個線程去交互。還有一個線程是定時器。

『肆』 有人能夠搞一個c語言下的socket編程的代碼,就只要實現tcp的連接就行了

留個郵箱,我發給你,client server端都有,vc++6.0工程。

『伍』 急求C語言編寫的socket網路聊天源代碼

沒學過。不好意思!

『陸』 socket編程 c語言

sender 沒有看到 i 列印,是由於你沒有加換行,由於標准輸出是行緩沖,所以不會馬上列印,而是要等遇到 \n 或者進程結束才會列印。你可以寫成 printf("%d\n"); 就能看到發送方的列印。

接收方也可以加上printf來列印。

這么簡單的程序,用gdb自己調試也可以。

『柒』 Linux中C語言的一個函數的源代碼:socket 編程中的 recv() 函數。

在內核中它是sys_recv()

『捌』 用c語言寫socket編寫服務端

這個可以有的。我截圖給你看看

研究了這么久。現在也能獨立完成一個簡單的sock了。QQ2638512393.歡迎你加我一起學習探討。呵呵

閱讀全文

與c語言socket源碼相關的資料

熱點內容
安卓手機如何玩我的世界版本 瀏覽:957
winform自己創建文件夾 瀏覽:257
特派員的命令 瀏覽:212
文明重啟國服怎麼開自己的伺服器 瀏覽:177
steam視頻壁紙文件夾 瀏覽:524
通達信炒股軟體編程 瀏覽:720
如何使用伺服器控制權 瀏覽:589
計算機演算法需要學數學嗎 瀏覽:604
stc單片機燒寫程序 瀏覽:172
deflaterjava 瀏覽:129
壓縮機常用品牌 瀏覽:185
如何快速攻略伺服器 瀏覽:375
壓縮洗臉巾厚款 瀏覽:971
邊柱子加密箍筋怎麼算 瀏覽:114
keil以速度編譯 瀏覽:129
幻雲神奇寶貝伺服器extreme在哪裡 瀏覽:764
程序員下班後唱歌 瀏覽:202
壓縮舊文件可以刪嗎 瀏覽:692
個人所得稅APP怎麼下載登記 瀏覽:67
網游apk反編譯 瀏覽:891