C++ 如何解决套接字编程错误?
我正在实施一个机器问题,我遇到了一个错误,我不知道问题出在哪里,我想将命令行参数发送到sendto()中,但它给了我错误。请为我提供一个解决方案。我知道问题出在sendto()的参数中。。。以下是客户端程序:C++ 如何解决套接字编程错误?,c++,sockets,C++,Sockets,我正在实施一个机器问题,我遇到了一个错误,我不知道问题出在哪里,我想将命令行参数发送到sendto()中,但它给了我错误。请为我提供一个解决方案。我知道问题出在sendto()的参数中。。。以下是客户端程序: #include <iostream> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #
#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <stdio.h>
using namespace std;
int main(int argc, char*argv[])
{
char msg[100];
int i=0;
char * adress;
char * subject;
char * name;
adress=argv[i+1];
subject=argv[i+2];
name=argv[i+3];
if(argc>9){
cout << "Just provide three arguments in commandline,please. " << endl;
}
int conn_sock,n,err;
struct sockaddr_in server_addr;
conn_sock=socket(AF_INET,SOCK_DGRAM,0);
if(conn_sock ==-1)
{
perror("\n\nError in making socket and error is");
cout<<"Error No:\t\n"<<errno;
exit(0);
}
server_addr.sin_family= AF_INET;
server_addr.sin_port = 1234;
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
int p=sizeof(server_addr);
//const void* a =( const void*(strlen(adress)));
n=sendto(conn_sock,msg,0,(sockaddr*)&server_addr,p);
exit(0);
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
char-msg[100];
int i=0;
字符*地址;
字符*主题;
字符*名称;
地址=argv[i+1];
受试者=argv[i+2];
name=argv[i+3];
如果(argc>9){
cout您正在使用的sendto
如下所示:
n = sendto( conn_sock, msg, 0, (sockaddr*)&server_addr, p );
您错过了上述调用的标志
参数。请参阅
您遇到了什么错误?我已解决了错误,谢谢:)因此请删除该问题。如果没有错误和解决方案,该问题将一文不值。下次请在您的问题中包含实际的错误消息。我还有一个问题,我必须将地址、消息和文本文件发送到服务器,因此有一个sendto()和rcvfrm()可以这样做,或者我需要为每个调用三个函数??因此,请提出一个新问题,并删除此问题。好的,解决了它。谢谢,我还有另一个问题,我必须将地址、消息和文本文件发送到服务器,以便一个sendto()和rcvfrm()可以这样做,或者我需要为每个调用三个函数??
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);