学校给了数据 然后给了链接数据库的类,但是不知道具体怎么操作
还是找你们老师问清楚点,c/s的架构是用websocket,然而做微博那种的又比较适合b/s架构的,b/s架构的话用websocket就很蠢
还是说你们有教java桌面图形界面的课程,那样就是client端做图形界面,server端做数据库连接,数据增删改查
把你这个要做的功能简单描述一下,要socket通讯吗
server和client是C/S架构
server端:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc, char *argv[])
{
unsigned short port = 8000;
if(argc > 1)
{
port = atoi(argv[1]);
}
int sockfd = socket(AF_INET, SOCK_STREAM, 0);//server的搭建
if(sockfd < 0)
{
perror("sockfd");
exit(-1);
}
struct sockaddr_in my_addr;//本地信息 设置基础信息为后面的bind()铺垫:
bzero(&my_addr, sizeof(my_addr));
my_addr.sin_family = AF_INET;//设置地址族为IPv4
my_addr.sin_port = htons(port);//设置地址的端口号信息
my_addr.sin_addr.s_addr = htonl(INADDR_ANY);//INADDR_ANY服务器可以接收任意地址
int err_log = bind(sockfd, (struct sockaddr*)&my_addr, sizeof(my_addr));//监听
if(err_log != 0)
{
perror("binding");
close(sockfd);
exit(-1);
}
err_log = listen(sockfd, 10);
if(err_log != 0)
{
perror("listen");
close(sockfd);
exit(-1);
}
printf("listen client %d\n",port);
struct sockaddr_in client_addr;//等待连接:
char cli_ip[INET_ADDRSTRLEN] = " ";
socklen_t client_len = sizeof(client_addr);
int connfd;
connfd = accept(sockfd, (struct sockaddr*)&client_addr, &client_len);//等待连接
if(connfd < 0 )
{
perror("accept");
return -1;
//continue;
}
inet_ntop(AF_INET, &client_addr.sin_addr, cli_ip, INET_ADDRSTRLEN);//转换并打印信息
printf("********************************\n");
while(1)
{
char recv_buf[2048] = " ";
recv(connfd, recv_buf, sizeof(recv_buf), 0);//接收信息
printf("recv data:%s\n",recv_buf);
send(connfd, "ok", 2, 0);//向客户端发送数据
printf("ok\n");
}
close(sockfd);//关闭监听套接字
return 0;
}
client端:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
unsigned short port = 8000;
char *server_ip = "192.168.0.111";
if(argc > 1)
{
server_ip = argv[1];
}
if(argc > 2)
{
port = atoi(argv[2]);
}
int sockfd = 0;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd < 0)//创建TCP套接字
{
perror("socket ");
exit(-1);
}
struct sockaddr_in server_addr;//基本信息和连接
bzero(&server_addr, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
inet_pton(AF_INET, server_ip, &server_addr.sin_addr);
int err_log = connect(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr));
if(err_log != 0)
{
perror("connect");
close(sockfd);
exit(-1);
}
while(1)//发送和接收
{
char send_buf[512] = " ";
char recv_buf[512] = " ";
printf("send data to %s:%d\n",server_ip, port);
printf("send:");
fgets(send_buf, sizeof(send_buf), stdin);
send_buf[strlen(send_buf)-1] = 0;
send(sockfd, send_buf, strlen(send_buf), 0);//向服务器发送数据
printf("send:%s\n",send_buf);
recv(sockfd, recv_buf, sizeof(recv_buf), 0);//接收数据
printf("recv:%s\n",recv_buf);
}
return 0;
}
client 用什么语言呢?server 用什么语言呢
我理解是不是需要使用webservice进行通讯,一人开发server服务,需要操作数据库,一人开发client服务,直接去调服务端获取数据。
就是一个像微博一样的东西 有用户数据库 点赞 关注 发帖子这种 然后一个人写client 一个人 server 我是server 但是不知道具体怎么写
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y
我觉得不是web的那种,要用javafx做一个软件类型的东西