/// -------------->client
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#define ERROR -1
#define OK 1
int main(int argc, char *argv[])
{
int c_fd;
int len;
char buf[1024]={"tanhuifang"};
unsigned short port = 0x8888;
struct sockaddr_in s_addr;
int sizeSockaddr = sizeof(struct sockaddr_in);
/// @brief 创建套接字
bzero(&s_addr,sizeSockaddr);
s_addr.sin_family = AF_INET;
s_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
s_addr.sin_port = htons(port);
if(-1 == (c_fd = socket(AF_INET, SOCK_STREAM, 0)) )
{
fprintf(stdout,"socket fail\n");
return ERROR;
}
/// @brief 连接
if(-1 == connect(c_fd,(struct sockaddr *)(&s_addr),sizeSockaddr) )
{
fprintf(stdout,"socket fail\n");
return ERROR;
}
else
{
fprintf(stdout,"IP:%#x\tport:%#x\n",ntohl(s_addr.sin_addr.s_addr),s_addr.sin_port);
while(1)
{
if(-1 == (len = write(c_fd,buf,sizeof(buf)) ))
{
fprintf(stdout,"write fail\n");
return ERROR;
}
else
{
fprintf(stdout,"send success!!!\n%d\n%s\n",len,buf);
}
sleep(2);
}
}
return OK;
}
#####################################################################
/// --------------------------->server
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#define ERROR -1
#define OK 0
int main(int argc, char *argv[])
{
int s_fd,c_fd;
int len;
unsigned short port = 0x8888;
char buf[1024];
struct sockaddr_in s_addr,c_addr;
int sizeSockaddr = sizeof(struct sockaddr_in );
/// @brief 创建套接字
if(-1 == (s_fd = socket(AF_INET, SOCK_STREAM, 0)) )
{
fprintf(stdout,"socket fail !\n");
return ERROR;
}
/// @brief 绑定
bzero(&s_addr, sizeSockaddr);
s_addr.sin_family = AF_INET;
s_addr.sin_addr.s_addr = htonl(INADDR_ANY);
s_addr.sin_port = htons(port);
if(-1 == bind(s_fd,(struct sockaddr *)(&s_addr),sizeof(struct sockaddr)))
{
fprintf(stdout,"bind socket fail !\n");
return ERROR;
}
/// @brief 监听
if(-1 == listen(s_fd,10))
{
fprintf(stdout,"listen socket fail !\n");
return ERROR;
}
if(-1 == (c_fd = accept(s_fd,(struct sockaddr *)(&c_addr),(socklen_t*)&sizeSockaddr)))
{
fprintf(stdout,"accept socket fail !\n");
return ERROR;
}
///fprintf(stdout,"welcom IP:%d port:%x",c_addr.sin_addr.s_addr,c_addr.sin_port)
fprintf(stdout,"welcom $$$$$\n");
while(1)
{
memset(buf,0,1024);
if(-1 == (len = read(c_fd,buf,1024)) )
{
fprintf(stdout,"read fail!!!\n");
return ERROR;
}
else if(len > 0)
{
buf[len]='\0';
fprintf(stdout,"I have recv:%d--%s\n",len,buf);
}
else
{
fprintf(stdout,"what happend!!!\nlen[%d]\n",len);
}
}
}