例子:
server端:
#include<sys/types.h>
#include<sys/socket.h>//包含套接字函数库
#include<stdio.h>
#include<netinet/in.h>//包含AF——INET相关结构
#include<arpa/inet.h>//包含AF——INET相关操作的函数
#include<unistd.h>
int main()
{
int server_sockfd,client_sockfd;//用于保存服务器和客户套接字标识符
int server_len,client_len;//用于保存服务器和客户消息长度
struct sockaddr_in server_address;//定义服务器套接字地址
struct sockaddr_in client_address;//定义客户端套接字地址
server_sockfd=socket(AF_INET,SOCK_STREAM,0);//定义套接字类型
server_address.sin_family=AF_INET;//定义套接字地址中的域
server_address.sin_addr.s_addr=inet_addr("192.168.152.129");//定义套接字地址
server_address.sin_port=9734;//定义套接字端口
server_len=sizeof(server_address);
bind(server_sockfd,(struct sockaddr*)&server_address,server_len);
listen(server_sockfd,5);//创建套接字队列
while(1)
{
char ch;
printf("服务器等待消息:");
client_len=sizeof(client_address);
client_sockfd=accept(server_sockfd,//接收连接
(struct sockaddr*)&client_address,
(socklen_t*__restrict)&client_len);
read(client_sockfd,&ch,1);//读取客户端信息
ch++;
write(client_sockfd,&ch,1);//向客户端传送信息
close(client_sockfd);//关闭连接
}
}
client端:
#include<sys/types.h>
#include<sys/socket.h>//包含套接字函数库
#include<stdio.h>
#include<netinet/in.h>//包含AF——INET相关结构
#include<arpa/inet.h>//包含AF——INET相关的操作函数
#include<unistd.h>
int main()
{
int sockfd;//用于保存客户套接字标识符
int len;//用于保存客户消息长度
struct sockaddr_in address;//定义客户套接字地址
int result;
char ch='A';//定义要传达的消息
sockfd=socket(AF_INET,SOCK_STREAM,0);//定义套接字类型
address.sin_family=AF_INET;//定义套接字地址中的域
address.sin_addr.s_addr=inet_addr("192.168.152.129");//定义套接字地址
address.sin_port=9734;//定义套接字端口
len=sizeof(address);
result=connect(sockfd,(struct sockaddr*)&address,len);//请求连接
if(result==-1)
{
perror("连接失败");
return 1;
}
write(sockfd,&ch,1);//向服务器传送消息
read(sockfd,&ch,1);//从服务器接收消息
printf("来自服务器的消息是:%c\n",ch);
close(sockfd);//关闭连接
return 0;
}
完!!