C语言socket编程怎么实现2个客户端之间通信

C语言socket编程怎么实现2个客户端之间通信,第1张

两个单独的客户端是没法通信的,必须经过服务器

服务器和客户端连接过程如下:

客户端:

socket-->connect-->read/write

服务器:

socket-->bind-->listen-->accept-->write/read

若要通讯必须要有服务器,只有在connect和accept建立好连接之后才能真正的通信。

如果你是问编程的流程或者上述函数的意义和用法百度上一大堆。

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

#define N 10

#define MAX 100

int child_read_pipe(int fd)

{

char buf[N]

int n = 0

while(1)

{

n = read(fd,buf,sizeof(buf))

buf[n] = '\0'

printf("Read %d bytes : %s.\n",n,buf)

if(strncmp(buf,"quit",4) == 0)

break

}

return 0

}

int father_write_pipe(int fd)

{

char buf[MAX] = {0}

while(1)

{

printf(">")

fgets(buf,sizeof(buf),stdin)

buf[strlen(buf)-1] = '\0'

write(fd,buf,strlen(buf))

usleep(500)

if(strncmp(buf,"quit",4) == 0)

break

}

return 0

}

int main()

{

int pid

int fd[2]

if(pipe(fd) <0)

{

perror("Fail to pipe")

exit(EXIT_FAILURE)

}

if((pid = fork()) <0)

{

perror("Fail to fork")

exit(EXIT_FAILURE)

}else if(pid == 0){

close(fd[1])

child_read_pipe(fd[0])

}else{

close(fd[0])

father_write_pipe(fd[1])

}

exit(EXIT_SUCCESS)

}

您好,你可以用两个不同进程之间的数据交互:

1、可以选择socket通信

2、可以选择文件,不过要注意好读写

3、消息传递,在windows下抛出一个消息//具体怎么做我没试过,只知道有这方法

4、数据库//这个比较容易实现

这样就可以选择用不同语言写出来的程序了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7821836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存