#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
//#include <linux/in.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>int main()
{
int s_fd;
/*1.socket
2.bind
3.listen
4.accept
5.read
6.write
*/s_fd = socket(AF_INET,SOCK_STREAM,0); //创建socket套接字,s_fd为函数返回的句柄
struct sockaddr_in s_addr; //创建套接字结构体
s_addr.sin_family = AF_INET; //设置因特网模式
s_addr.sin_port = htons(8066); //设置服务端的端口号
inet_aton("192.168.213.128",&s_addr.sin_addr); //将服务端的IP地址转化为网络能识别的格式
bind(s_fd,(struct sockaddr *)&s_addr,sizeof(struct sockaddr_in)); //捆绑服务端套接字和结构体listen(s_fd,20); //监听
int c_len = sizeof( struct sockaddr_in); //获得套接字结构体大小
int c_fd = accept(s_fd,(struct sockaddr *)&c_addr,&c_len);if(c_fd == -1) //accept返回值为-1,连接失败
{
perror("accept error");
}
printf("connect success : %s\n", inet_ntoa(c_addr.sin_addr) ); //连接成功,显示客户端的IP地址
printf("connect success\n"); //显示连接成功
int n_read = read(c_fd,Buf,128); //读取客户端发送的内容,读取128个字节,储存在Buf数组中
if(n_read == -1) // 如果读取失败,read函数返回值为-1
{
perror("read error");
}else
{
printf("get message %d , %s\n",n_read,Buf); //读取成功,显示读取到的字节数,显示读取到的内容
}char huifu[129] ="I have got your message"; //服务端返回给客户端的信息
write(c_fd,huifu,strlen(huifu)); //服务端向客户端回复“已得到消息”
while(1);
return 0;
}
系统连接服务器命令:telnet ip地址 端口号