首页
社区
课程
招聘
[旧帖] [分享]今天没事干朋友叫我写了个局域网内的小型聊天工具 0.00雪花
发表于: 2014-10-24 00:28 1570

[旧帖] [分享]今天没事干朋友叫我写了个局域网内的小型聊天工具 0.00雪花

2014-10-24 00:28
1570
服务端代码:
#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虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 118
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
???看不到代码,能否上传一下文件哈
2014-10-24 07:34
0
雪    币: 229
活跃值: (94)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
mark,,
2014-10-25 09:30
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mark.
2014-10-25 12:35
0
游客
登录 | 注册 方可回帖
返回
//