客户端:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<assert.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#define IPSTR "127.0.0.1"
#define PORT 6000
#define BUF_SIZE 128
int main()
{
int sockfd = socket(AF_INET,SOCK_STREAM,0);
assert(sockfd != -1);
struct sockaddr_in saddr;
memset(&saddr,0,sizeof(saddr));
saddr.sin_family = AF_INET;
saddr.sin_port = htons(PORT);//ser port
saddr.sin_addr.s_addr = inet_addr(IPSTR);//ser ip
int res = connect(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));
assert(res != 1);
while(1)
{
printf("connect >> ");
fflush(stdout);
char buff[BUF_SIZE] = {0};
fgets(buff,BUF_SIZE,stdin);
if( strncmp(buff,"end",3) == 0)
{
break;
}
send(sockfd,buff,strlen(buff),0);
memset(buff,0,BUF_SIZE);
recv(sockfd,buff,BUF_SIZE -1,0);
printf("%s\n",buff);
}
close(sockfd);
}
服务器端:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<assert.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<pthread.h>
#define IPSTR "127.0.0.1"
#define PORT 6000
#define LIS_NUM 5
#define BUF_SIZE 128
int creat_sockfd();
void* work_thread(void* arg)
{
int c = (int)arg;
while(1)
{
char buff[BUF_SIZE] = {0};
int n = recv(c,buff,BUF_SIZE-1,0);
if(n <= 0)
{
break;
}
//test
printf("buff(%d)=%s\n",c,buff);
send(c,"ok31234",8,0);
//get :download
//put :upload
//ls -
//mv
//rm
}
}
int main()
{
int sockfd = creat_sockfd();
assert(sockfd != -1);
while(1)
{
struct sockaddr_in caddr;
int len = sizeof(caddr);
int c = accept(sockfd,(struct sockaddr*)&caddr,&len);
if(c < 0)
{
continue;
}
pthread_t id;
pthread_create(&id,NULL,work_thread,(void*)c);
}
}
int creat_sockfd()
{
int sockfd = socket(AF_INET,SOCK_STREAM,0);
if( sockfd == -1)
{
return -1;
}
struct sockaddr_in saddr;
memset(&saddr,0,sizeof(saddr));
saddr.sin_family = AF_INET;
saddr.sin_port = htons(PORT);
saddr.sin_addr.s_addr = inet_addr(IPSTR);
int res = bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));
if (res == -1)
{
return -1;
}
listen(sockfd,LIS_NUM);
return sockfd;
}
版权声明:本文为qq_41158224原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。