导航:首页 > 源码编译 > 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源码相关的资料

热点内容
程序员锁死一个游戏 浏览:191
小程序免费源码网站 浏览:632
android获取路由器mac地址 浏览:773
单片机龙芯 浏览:493
服务器误删文件怎么找 浏览:33
云服务器查看mac地址 浏览:106
火车高铁时间下载什么app 浏览:660
专业程序员自学 浏览:290
瑞达app干什么用的 浏览:952
ug补异形孔命令 浏览:119
加密卡手机复制不了 浏览:543
三坐标如何编程 浏览:36
unix高级环境编程第三版pdf 浏览:404
金融程序员怎么找女朋友 浏览:304
程序员必看的十部烧脑电影 浏览:419
php源码在线翻译 浏览:132
linux怎么装xp 浏览:288
安卓阅读器app源码 浏览:169
linuxredhat命令 浏览:265
机械硬盘能读出文件夹但是无内容 浏览:767