linux下main函数的参数长度是不是有限制???
我在linux下写了和windows下类似的netsend程序,格式希望就是这样
netsend ip "message" 或者 netsend -a ip -m "message"
所以就要用到带参数的main函数,argv[1]是ip,argv[2]就是message
程序包括服务端和客户端已经完成,基本可以,就是message长度有限制,好像只能是4个
字符,也就4个字节,超过了就只显示一个@还有乱麻,
如果不用带参数的main函数,直接就提示你输入,然后gets将字符串存入缓冲区,这样处
理
一点问题也没有,但是觉得这样太土了,最好还是windows下的格式,比较亲切的说
服务端程序一点问题也没有,只是客户端,如何处理message这个参数作为main函数的参数
客户端程序如下(我用argv【2】表message)
#include "stdio.h"
#include "stdlib.h"
#include "errno.h"
#include "string.h"
#include "netdb.h"
#include "sys/types.h"
#include "netinet/in.h"
#include "sys/socket.h"
#include "unistd.h"
int main(int argc,char *argv[])
{
int sockfd;
int len;
int result;
struct sockaddr_in address;
struct hostent *h;
// getopt(argc,argv,"c:");
// char message[100];
h=gethostbyname(argv[1]);
sockfd=socket(AF_INET,SOCK_STREAM,0);
address.sin_family=AF_INET;
address.sin_addr=*((struct in_addr *)h->h_addr);
address.sin_port=htons(2323);
len=sizeof(address);
result=connect(sockfd,(struct sockaddr *)&address,len);
if(result==-1)
{
perror("connect");
exit(1);
}
// printf("Please input your message:\n");
//gets(message);
write(sockfd,argv[2],sizeof(argv[2]));
close(sockfd);
return 0;
}