導航:首頁 > 源碼編譯 > 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源碼相關的資料

熱點內容
壓縮空氣洗車 瀏覽:707
cad中命令zoome 瀏覽:1001
如何改變家長對安卓的偏見 瀏覽:94
微擎伺服器ip地址怎麼查 瀏覽:212
江陰變頻空氣壓縮機品牌 瀏覽:906
家用閑置電腦如何改造為伺服器 瀏覽:402
作業幫加密碼 瀏覽:454
手機怎麼沒有伺服器 瀏覽:67
swift編程軟體 瀏覽:752
php中pathinfo是什麼 瀏覽:71
tsp演算法源代碼 瀏覽:551
程序員鎖死一個游戲 瀏覽:194
小程序免費源碼網站 瀏覽:632
android獲取路由器mac地址 瀏覽:776
單片機龍芯 瀏覽:494
伺服器誤刪文件怎麼找 瀏覽:33
雲伺服器查看mac地址 瀏覽:107
火車高鐵時間下載什麼app 瀏覽:660
專業程序員自學 瀏覽:291
瑞達app干什麼用的 瀏覽:952