Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何解决套接字编程错误?_C++_Sockets - Fatal编程技术网

C++ 如何解决套接字编程错误?

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> #

我正在实施一个机器问题,我遇到了一个错误,我不知道问题出在哪里,我想将命令行参数发送到sendto()中,但它给了我错误。请为我提供一个解决方案。我知道问题出在sendto()的参数中。。。以下是客户端程序:

#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);