“ 简单的socket编程例子 ”
简单的socket编程例子
/*echocli.c --echo client*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/sockets.h>
#include <net/netinet.h>
#define BUFLEN 255
int main(int argc,char** argv)
{
struct sockaddr_in
{
uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
}
struct socketaddr_in servaddr; /*服务方socket地址结构 */
int sockfd,h;
char recmsg[BUFLEN+1];
char errmsg[]="echo doesn't function.\n";
if (argc!=2) {
printf("%s<IP address>\n",arfv[0]);
exit(0);
}
sockfd=socket(AF_INET,SOCK_STREAM,0); /*生成一个socket */
if(sockfd<0) {
fprintf(stderr,"socket creating error!\n");
exit(1);
}
memset(&servaddr,0,sizeof(struct sockaddr_in));
servaddr.sin_family=AF_INET; /*使用ipv4协议族的socket*/
servaddr.sin_port= htons(7); /*Echo服务的周知口*/
if(inet_pton(AF_INET,arfv[1],&servaddr.sin_addr) <=0)
{
/*通过inet_pton获得ip地址*/
printf("Wrong IP address!\n");
exit(0);
}
if(connet(sockfd,(struct sockaddr*) (&servaddr),sizeof(struct sockaddr_in) )<0)
{
/*connet将socket这个套接字与指定的ip的地址和断口号连接*/
printf("Connection Failure!\n");
exit(2);
}
printf("Connected to host %s\n",argv[1]);
while (fgets(recmsg,BUFLEN ,stdin) !=NULL)
{ /*从终端读入一行*/
write (sockfd,recmsg,strlen(recmsg) );/* 向sockfd写入*/
printf("sent:%s",recmsg);
strcpy(recmsg,errmsg);
n=read(sockfd,recmsg,BUFLEN); /*从socket读出*/
if(n>0)
{
recmsg[n]=0;
printf("echo:%s",recmsg);
}
else if(n==-1)
{
frpintf(stderr,"read error in client socket!\n");
exit(3);
}
}
exit(0);
}
编译结果说
#include <sys/sockets.h>
#include <net/netinet.h>
没有找到、、、、
工具:dev c++
/*echocli.c --echo client*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/sockets.h>
#include <net/netinet.h>
#define BUFLEN 255
int main(int argc,char** argv)
{
struct sockaddr_in
{
uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
}
struct socketaddr_in servaddr; /*服务方socket地址结构 */
int sockfd,h;
char recmsg[BUFLEN+1];
char errmsg[]="echo doesn't function.\n";
if (argc!=2) {
printf("%s<IP address>\n",arfv[0]);
exit(0);
}
sockfd=socket(AF_INET,SOCK_STREAM,0); /*生成一个socket */
if(sockfd<0) {
fprintf(stderr,"socket creating error!\n");
exit(1);
}
memset(&servaddr,0,sizeof(struct sockaddr_in));
servaddr.sin_family=AF_INET; /*使用ipv4协议族的socket*/
servaddr.sin_port= htons(7); /*Echo服务的周知口*/
if(inet_pton(AF_INET,arfv[1],&servaddr.sin_addr) <=0)
{
/*通过inet_pton获得ip地址*/
printf("Wrong IP address!\n");
exit(0);
}
if(connet(sockfd,(struct sockaddr*) (&servaddr),sizeof(struct sockaddr_in) )<0)
{
/*connet将socket这个套接字与指定的ip的地址和断口号连接*/
printf("Connection Failure!\n");
exit(2);
}
printf("Connected to host %s\n",argv[1]);
while (fgets(recmsg,BUFLEN ,stdin) !=NULL)
{ /*从终端读入一行*/
write (sockfd,recmsg,strlen(recmsg) );/* 向sockfd写入*/
printf("sent:%s",recmsg);
strcpy(recmsg,errmsg);
n=read(sockfd,recmsg,BUFLEN); /*从socket读出*/
if(n>0)
{
recmsg[n]=0;
printf("echo:%s",recmsg);
}
else if(n==-1)
{
frpintf(stderr,"read error in client socket!\n");
exit(3);
}
}
exit(0);
}
编译结果说
#include <sys/sockets.h>
#include <net/netinet.h>
没有找到、、、、
工具:dev c++
...全文
相关推荐
C#版本制作的扫雷
C#版本制作的扫雷,有源代码和说明<br>网上收集<br>下载虽然是1分,下载完毕写一个评论你的分就回来了哦
C#制作高仿windows自带扫雷
C#制作的高仿windows自带的扫雷,实现了双击功能,自定义功能,带英雄榜,适合C#初学者
自制C#扫雷
自制的扫雷小游戏,还有的西方不完善,但是作为课程阶段小作业还是可以的。
C#扫雷游戏源码及开发文档和chm格式使用说明
C#写的扫雷游戏,包括源码,数据库文件,详细的开发文档,游戏的图文使用说明手册。共享!
unity小扫雷游戏,能正常运行
unity扫雷游戏(免积分下载),可以调节行数列数,和雷的数量,有开始按钮,比较简单,适合新手学习使用,详情请看我发布的文章介绍。


非技术区
