TCP 通信

#include  <sys/types.h>                                                                                 
                                                                                                        
#include  <sys/socket.h>                                                                                
                                                                                                        
#include  <stdio.h>                                                                                     
                                                                                                        
#include  <netinet/in.h>                                                                                
                                                                                                        
#include  <arpa/inet.h>                                                                                 
                                                                                                        
#include  <unistd.h>                                                                                    
                                                                                                        
#include  <string.h>                                                                                    
                                                                                                        
#include  <netdb.h>                                                                                     
                                                                                                        
#include  <sys/ioctl.h>                                                                                 
                                                                                                        
#include  <termios.h>                                                                                   
                                                                                                        
#include  <stdlib.h>                                                                                    
                                                                                                        
#include  <sys/stat.h>                                                                                  
                                                                                                        
#include  <fcntl.h>                                                                                     
                                                                                                        
#include  <signal.h>                                                                                    
                                                                                                        
#include  <sys/time.h>                                                                                  
                                                                                                        
int main(int argc,char **argv)                                                                          
                                                                                                        
{                                                                                                       
pid_t fd;
                                                                                            
const char buff[] = "Hello! Welcome here  gggggggggggg!\r\n"; //定义要发送的数据缓冲区; 
                        
int sockfd,connsock; //定义一个socket套接字,用于通讯 
                                                           
struct sockaddr_in serveraddr;//定义网络套接字地址结构 
                                                         
if(argc!= 2)
                                                                                         
{
                                                                                                    
printf("Usage: echo ip地址"); 
                                                                       
exit(0); 
                                                                                          

                                                                                                   
sockfd =socket(AF_INET,SOCK_STREAM,0); //创建一个套接字 
                                                    
bzero(&serveraddr,sizeof(serveraddr)); 
                                                              
serveraddr.sin_family = AF_INET; //指定使用的通讯协议族 
                                                       
serveraddr.sin_port = htons(5000);//指定要连接的服务器的端口 
                                                    
inet_pton(AF_INET, argv[1], &serveraddr.sin_addr); 
                                                  
connect(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr)); //连接服务器 
                          
send(sockfd,buff,sizeof(buff), 0);//向客户端发送数据 
                                                        
close(sockfd); //关闭套接字 
                                                                              
return(0);
                                                                                           
                                                                                                        
                                                                                                        
}                                                                                                       

        //服务器端代码


#include  <sys/types.h>                                                                                               
#include  <sys/socket.h>                                                                                              
#include  <stdio.h>                                                                                                   
                                                                                                                      
#include  <netinet/in.h>                                                                                              
                                                                                                                      
#include  <arpa/inet.h>                                                                                               
                                                                                                                      
#include  <unistd.h>                                                                                                  
                                                                                                                      
#include  <string.h>                                                                                                  
                                                                                                                      
#include  <netdb.h>                                                                                                   
                                                                                                                      
#include  <sys/ioctl.h>                                                                                               
                                                                                                                      
#include  <termios.h>                                                                                                 
                                                                                                                      
#include  <stdlib.h>                                                                                                  
                                                                                                                      
#include  <sys/stat.h>                                                                                                
                                                                                                                      
#include  <fcntl.h>                                                                                                   
                                                                                                                      
#include  <signal.h>                                                                                                  
                                                                                                                      
#include  <sys/time.h>                                                                                                
                                                                                                                      
                                                                                                                      
                                                                                                                      
void main() 
                                                                                                         

                                                                                                                   
pid_t fd;
                                                                                                          
int listensock,connsock; 
                                                                                          
char recvbuff[100]; //定义要接收的数据缓冲区 
                                                                                 
struct sockaddr_in serveraddr; //定义网络套接字地址结构 
                                                                      
listensock = socket(AF_INET,SOCK_STREAM,0); //创建一个套接字,用于监听 
                                                        
bzero(&serveraddr,sizeof(struct sockaddr)); //地址结构清零 
                                                              
serveraddr.sin_family = AF_INET; //指定使用的通讯协议族 
                                                                     
serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); //指定接受任何连接
                                                         
serveraddr.sin_port = htons(5000); //指定监听的端口 
                                                                      
bind(listensock,(struct sockaddr *)&serveraddr,sizeof(struct sockaddr_in));//给套接口邦定地址 
                             
listen(listensock,1024); //开始监听 
                                                                                   
connsock = accept(listensock,(struct sockaddr *)NULL, NULL); 
                                                      
//建立通讯的套接字,accept函数,等待客户端程序使用connect函数的连接 
                                                                         
recv(connsock,recvbuff,sizeof(recvbuff),0); //接收服务器的数据
                                                             
printf("%s\n",recvbuff); //打印接收到的数据 
                                                                               
    sleep(2);
                                                                                                        
                                                                                                                      
close(connsock); //关闭通讯套接字                                                                                          
                                                                                                                      
close(listensock); //关闭监听套接字                                                                                        
                                                                                                                      
}                                                                                                                     

                                                                                                

                                                                                                        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值