求一C语言写的tcp程序的源码,程序越简单越好,C++也可以,最好带注释

求一C语言写的tcp程序的源码,程序越简单越好,C++也可以,最好带注释,第1张

最简单的那种?我给你写一个=,=

//服务器

#include <sys/stat.h>

#include <fcntl.h>

#include <errno.h>

#include <netdb.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <string.h>

#include <stdlib.h>

#include <stdio.h>

#include <unistd.h>

main()

{

//创建套接字

int serverSocket= socket(AF_INET,SOCK_STREAM,0)

struct sockaddr_in server_addr

struct sockaddr_in clientAddr

int addr_len = sizeof(clientAddr)

int client

char buffer[200]

//创建地址

bzero(&server_addr,sizeof(server_addr))

server_addr.sin_family =AF_INET

server_addr.sin_port = htons(5555)

server_addr.sin_addr.s_addr = htonl(INADDR_ANY)

//绑定

bind(serverSocket,(struct sockaddr *)&server_addr,sizeof(server_addr))

//帧听

listen(serverSocket,5)

printf("客户端发过来的 :\n")

//接收

client=accept(serverSocket,(sockaddr *)&clientAddr,(socklen_t*)&addr_len)

printf("客户端发过来的 :\n")

while(1)

{

if(recv(client,buffer,sizeof(buffer),0)>0)

printf("客户端发过来的 : %s\n",buffer)

}

return 0

}

//客户端

#include <sys/stat.h>

#include <fcntl.h>

#include <errno.h>

#include <netdb.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <string.h>

#include <stdlib.h>

#include <stdio.h>

#include <unistd.h>

main()

{

struct sockaddr_in serverAddr

int clientSocket=socket(AF_INET,SOCK_STREAM,0)

char sendbuf[200]

//创建地址信息

serverAddr.sin_family=AF_INET

serverAddr.sin_port=htons(5555)

serverAddr.sin_addr.s_addr=inet_addr("127.0.0.1")

//连接服务器

connect(clientSocket,(sockaddr*)&serverAddr,sizeof(serverAddr))

printf("连接目标主机中.....\n连接完成......\n")

//

while(1)

{

printf("请输入发给服务器的数据 : ")

scanf("%s",sendbuf)

//strcmp函数作用,比较两个东东(按ASCII值大小相比较),相同就==0。

if(strcmp(sendbuf,"x")==0)

break

send(clientSocket,sendbuf,sizeof(sendbuf),0)

}

close(clientSocket)

return 0

}

1.首先执行roscd beginner_tutorials命令,然后创建src/add_two_ints_server.cpp服务端源码,内容如下:

2.接下来创建src/add_two_ints_client.cpp客户端程序,源码如下:

3.接下来修改CMakeLists.txt文件,在文件尾部添加如下内容:

4.编译运行

  执行如下命令运行服务端:

  执行后会有如下提示:

  接下来执行客户端:

  会有如下提示:

  而刚才服务端会有如下提示:

参考网址: http://wiki.ros.org/ROS/Tutorials/WritingServiceClient%28c%2B%2B%29

这样的案例,一定是一个完整的工程,因为涉及到客户端、服务器端、数据库等至少两个子工程,不会太小,只能跟你说下大致方法。

再一个打的工程项目里,新建两个子工程,一个是Winfrom工程,一个Web工程。如果不直接调用数据库,可以在Web工程中新建一个Web服务,将数据库访问相关的代码,写入Web服务,在Winfrom项目中新增服务器引用,引用Web服务,通过Web服务间接读写数据库。

Web服务可以使用加强版的WCF,目前很流行。不直接调用数据库的优点是,客户端不保留数据库连接字,可以保证数据库安全。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/186017.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存