linux下简单网络编程
2011-03-26 21:53
357 查看
编写网络程序一般分为客户程序和服务程序,主要有TCP和UPD两个协议,TCP服务程序的主要流程有socket()->bind()->listen()->accept()->对数据的操作,客户程序主要是socket()->connect()->对数据的操作,在编写程序时可通过函数的返回值判断是哪一步出了问题,问题便可解决。对于UPD流程没什么问题,主要步骤都差不多。
service:
#include<sys/wait.h>
#define SOCKETPORT 2222
#define SOCKETNUM 10
int main(int argc,char **argv)
{
struct sockaddr_in serv,clien;
int sockfd;
char buffer[100];
sockfd=socket(AF_INET,SOCK_STREAM,0);
serv.sin_family=AF_INET;
serv.sin_port=htons(SOCKETPORT);
serv.sin_addr.s_addr=htonl(INADDR_ANY);
bind(sockfd,(struct sockaddr *)&serv,sizeof(struct sockaddr_in));
listen(sockfd,10);
while(1)
{
int sin_size=sizeof(struct sockaddr_in);
int fd=accept(sockfd,(struct sockaddr *)&clien,&sin_size);
if(fd==-1)printf("dgdgd/n");
printf("recevied a connetion form %s/n",inet_ntoa(clien.sin_addr));
if(send(fd,"hello,you are connected !/n",26,0)==-1)
printf("error");
//recv(fd,buffer,sizeof(buffer),0);
//printf("%s/n",buffer);
}
return 0;
}
client:
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/wait.h>
#define SOCKETPORT 2222
#define SOCKETNUM 10
int main(int argc,char **argv)
{
struct sockaddr_in serv;
int sockfd;
char buffer[100];
sockfd=socket(AF_INET,SOCK_STREAM,0);
serv.sin_family=AF_INET;
serv.sin_port=htons(SOCKETPORT);
serv.sin_addr.s_addr=inet_addr(argv[1]);
int clientfd=connect(sockfd,(struct sockaddr *)&serv,sizeof(struct sockaddr));
//send(sockfd,"hello,you are connected! /n",26,0);
recv(sockfd,buffer,100,0);
printf("%s/n",buffer);
return 0;
}
service:
#include<sys/wait.h>
#define SOCKETPORT 2222
#define SOCKETNUM 10
int main(int argc,char **argv)
{
struct sockaddr_in serv,clien;
int sockfd;
char buffer[100];
sockfd=socket(AF_INET,SOCK_STREAM,0);
serv.sin_family=AF_INET;
serv.sin_port=htons(SOCKETPORT);
serv.sin_addr.s_addr=htonl(INADDR_ANY);
bind(sockfd,(struct sockaddr *)&serv,sizeof(struct sockaddr_in));
listen(sockfd,10);
while(1)
{
int sin_size=sizeof(struct sockaddr_in);
int fd=accept(sockfd,(struct sockaddr *)&clien,&sin_size);
if(fd==-1)printf("dgdgd/n");
printf("recevied a connetion form %s/n",inet_ntoa(clien.sin_addr));
if(send(fd,"hello,you are connected !/n",26,0)==-1)
printf("error");
//recv(fd,buffer,sizeof(buffer),0);
//printf("%s/n",buffer);
}
return 0;
}
client:
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/wait.h>
#define SOCKETPORT 2222
#define SOCKETNUM 10
int main(int argc,char **argv)
{
struct sockaddr_in serv;
int sockfd;
char buffer[100];
sockfd=socket(AF_INET,SOCK_STREAM,0);
serv.sin_family=AF_INET;
serv.sin_port=htons(SOCKETPORT);
serv.sin_addr.s_addr=inet_addr(argv[1]);
int clientfd=connect(sockfd,(struct sockaddr *)&serv,sizeof(struct sockaddr));
//send(sockfd,"hello,you are connected! /n",26,0);
recv(sockfd,buffer,100,0);
printf("%s/n",buffer);
return 0;
}
相关文章推荐
- linux 网络编程之最简单的tcp通信服务端
- Linux网络编程学习之---简单局域网FTP文件传输服务器
- linux网络编程简单C/S模型实现
- Linux网络编程之简单并发服务器
- Linux网络编程:一个简单的正向代理服务器的实现
- Linux网络编程-简单的客户端和服务器通讯程序开发入门(2)
- Linux下使用C做简单的网络编程
- 【Linux C网络编程基础】最简单的网络应用程序
- Linux 网络编程 简单实例
- Linux 网络编程基础(一) ---------------客户端/服务器的简单实现
- 网络编程 笔记(一) 基于 Linux简单通信
- linux 网络编程简单实例
- Linux下使用C做简单的网络编程
- linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)
- 简单linux网络编程
- linux网络编程之简单的服务器多线程
- Linux的简单的socket网络编程实例
- Linux网络编程之socket简单通信TCP--服务端代码
- 最简单的网络编程(linux)
- linux网络编程之简单的回射服务器