Linux下使用C做简单的网络编程
来源:互联网 发布:java导出图片 编辑:程序博客网 时间:2024/06/10 04:07
服务器端:
/* server.c*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <arpa/inet.h>
#define MAXLINE 80
#define SERV_PORT 8000
int main(void)
{
struct sockaddr_in servaddr, cliaddr;
socklen_t cliaddr_len;
int listenfd, connfd;
char buf[MAXLINE];
char str[INET_ADDRSTRLEN];
int i, n;
listenfd = socket(AF_INET, SOCK_STREAM, 0);
// bzero(&servaddr, sizeof(servaddr));
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);
bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
listen(listenfd, 20);
printf("Accepting connections ... /n");
while(1){
cliaddr_len = sizeof(cliaddr);
connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &cliaddr_len);
n = read(connfd, buf, MAXLINE);
printf("received from %s at PORT %d /n",
inet_ntop(AF_INET, &cliaddr.sin_addr, str, sizeof(str)),
ntohs(cliaddr.sin_port));
for(i = 0; i<n; i++){
buf[i] = toupper(buf[i]);
}
write(connfd, buf, n);
close (connfd);
}
return 1;
}
客户端:
/*client.c*/
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <arpa/inet.h>
#define SERV_PORT 8000
#define MAXLINE 80
int main(int argc, char **argv)
{
struct sockaddr_in servaddr;
char buf[MAXLINE];
int sockfd, n;
char *name;
if(argc==2){
name = argv[1];
}
printf("you input name is %s;/n",name);
fflush(stdout);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
inet_pton(AF_INET, "192.168.0.86", &servaddr.sin_addr);
servaddr.sin_port = htons(SERV_PORT);
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
write(sockfd, name, strlen(name));
n = read(sockfd, buf, MAXLINE);
printf("Response form server:/n");
write(STDOUT_FILENO, buf, n);
close(sockfd);
return 0;
}
- Linux下使用C做简单的网络编程
- Linux下使用C做简单的网络编程
- Linux下使用C做简单的网络编程
- linux下C语言编程2-makfile的简单使用
- Linux下简单的网络编程
- linux下c的网络编程---转载
- linux 下c的网络编程
- linux下简单网络编程
- 【Linux C网络编程基础】最简单的网络应用程序
- linux下的c语言/网络/网络编程面试题
- linux下的c语言-网络-网络编程面试题
- linux下的c语言-网络-网络编程面试题
- linux C 简单socket网络编程的实例
- Linux下c编程工具的使用
- linux简单的网络编程
- linux下的C语言开发(网络编程)
- linux下的C语言开发(网络编程)
- linux下的C语言开发(网络编程)
- 视频转成flv格式
- 函数对象和函数的区别
- 基数排序
- 必须知道的10个不常用HTML标签
- F#入门-第二章 F#基础-第九节 while循环
- Linux下使用C做简单的网络编程
- 生成ssh服务器密钥
- 【USACO Contest 】Holiday 2010 Bonus Competition, Problem 2: Rocks and Trees (rocks)
- Linux下mySQL命令大全
- 防止内存泄露 Linux下用Valgrind做检查
- Oracle&SQL,SQL的基础还是太薄弱了点
- FILE结构体(C语言版)
- 经典的LAMP安装
- 拓展动态编程的新领域