我 已经连接上了服务端,它有怎样的信息传输功能呢?
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "serv_client.h"
int main(int argc,char** argv)
{
int sockfd;
int clientfd;
uint16_t port;
int ret;
pid_t pid;
struct sockaddr_in server_addr;
if ( 2 != argc ){
printf("usage:command listen_port\n");
return -1;
}
port = atoi(argv[1]);
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = INADDR_ANY;
server_addr.sin_port = htons(port);
sockfd = socket(PF_INET,SOCK_STREAM,0);
if (sockfd < 0)
{
perror("open data stream socket failed!\n");
return -1;
}
ret = bind(sockfd,(struct sockaddr *)&server_addr,sizeof(server_addr));
if(ret < 0)
{
perror("bind data socket failed!\n");
return -1;
}
ret = listen(sockfd, SOMAXCONN );
if( ret < 0)
{
perror("listening data stream failed!\n");
return -1;
}
printf("Waiting for client conneciton...\n");
while(1)
{
clientfd = accept(sockfd, NULL, NULL);
if( clientfd < 0)
{
perror("accept data connection error!\n");
return -1;
}
pid = fork();
if ( pid < 0 ){
perror("fork error!\n");
}
if ( 0 == pid ){
//chid process
printf("one client come ...\n");
serv_client(clientfd);
return 0;
}
close(clientfd);
}
}
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "client_process.h"
void usage()
{
printf("command ip_addr port\n");
}
int main(int argc,char **argv)
{
struct sockaddr_in server;
int sockfd;
int port;
int ip_addr;
int ret;
if ( 3 != argc ){
usage();
return -1;
}
sockfd = socket(PF_INET, SOCK_STREAM , 0);
if(sockfd < 0)
{
perror("data stream socket create failed!\n");
return -1;
}
server.sin_family = AF_INET;
port = atoi(argv[2]);
server.sin_port = htons(port);
ret = inet_pton(AF_INET, argv[1], &server.sin_addr.s_addr);
if ( ret <=0 ){
printf("your ip address is unvalide!\n");
usage();
return -1;
}
ret = connect(sockfd,(struct sockaddr*) &server,sizeof(struct sockaddr_in));
if(ret < 0)
{
perror("data connection is failed!\n");
return -1;
}
printf("connect to server successfully!\n");
clinet_process( sockfd );
}