-
-
[旧帖]
[分享]今天没事干朋友叫我写了个局域网内的小型聊天工具
0.00雪花
-
发表于:
2014-10-24 00:28
1570
-
[旧帖] [分享]今天没事干朋友叫我写了个局域网内的小型聊天工具
0.00雪花
服务端代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main (int argc, char* argv[]) {
if (argc < 2) {
printf ("用法:%s <端口号>\n", argv[0]);
return -1;
}
printf ("服务器正在创建套接字中,请等待...\n");
sleep(5);
int sockfd = socket (AF_INET, SOCK_DGRAM,0);
if (sockfd == -1) {
perror ("socket");
return -1;
}
printf ("服务器正准备地址并绑定...\n");
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons (atoi (argv[1]));
addr.sin_addr.s_addr = INADDR_ANY;
if (bind (sockfd, (struct sockaddr*)&addr,
sizeof (addr)) == -1) {
perror ("bind");
return -1;
}
printf ("服务器开始接收数据...\n");
for (;;) {
char buf[1024];
ssize_t rb = read (sockfd, buf,
sizeof (buf));
if (rb == -1) {
perror ("read");
return -1;
}
if (! strcmp (buf, "!!"))
break;
printf ("< %s\n", buf);
}
printf ("服务器正在关闭套接字...\n");
close (sockfd);
return 0;
}
客户端代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main (int argc, char* argv[]) {
if (argc < 3) {
printf ("用法:%s <IP地址> <端口号>\n",
argv[0]);
return -1;
}
printf ("客户端正在创建套接字...\n");
sleep(5);
int sockfd = socket (AF_INET, SOCK_DGRAM,
0);
if (sockfd == -1) {
perror ("socket");
return -1;
}
printf ("客户端正在准备地址并连接...\n");
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons (atoi (argv[2]));
addr.sin_addr.s_addr = inet_addr (argv[1]);
if (connect (sockfd,
(struct sockaddr*)&addr,
sizeof (addr)) == -1) {
perror ("connect");
return -1;
}
printf ("客户端开始发送数据...\n");
for (;;) {
printf ("> ");
char buf[1024];
gets (buf);
if (! strcmp (buf, "!"))
break;
if (write (sockfd, buf,
strlen (buf) + 1) == -1) {
perror ("write");
return -1;
}
if (! strcmp (buf, "!!"))
break;
}
printf ("客户端开始关闭套接字...\n");
close (sockfd);
return 0;
}
使用IPC通信进行,写的很简单!有兴趣的可以继续在此基础上写下去!使用方法:gcc 编译以后会给出使用方法,希望各位支持一下!
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法