套接字连接在主功能内部但不在功能内部
socket connecting in main but not inside a function
我正在尝试创建一个套接字,连接方法工作正常(即如果从主函数调用则返回 0(,但如果从 main 以外的某个函数调用,则工作不正常(即返回非零值( 为什么? 提前致谢
#include<iostream>
#include<stdlib.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<arpa/inet.h>//the new file.
#include<unistd.h>//for using the sleep function.
#include<string.h>
using namespace std;
//char request1[]="GET /index.html HTTP/1.1rnrn";
void T_occupy(char* request,int n,struct sockaddr_in* server_address,int time_slot){
int my_socket;
while(1){
my_socket=socket(AF_INET,SOCK_STREAM,0);
int connection_status=connect(my_socket,(struct sockaddr*)&server_address,sizeof(server_address));
if(connection_status){
cout<<"error in establising the connection n";
return;
}
int i;
for(i=0;i<n;i++){
char temp=request[i];
send(my_socket,&temp,sizeof(temp),0);
sleep(time_slot);
}
close(my_socket);
}
}
int main(int argc,char* argv[]){
//first we will do thigns with only one thread.
char* address;
char* msg="GET /Iamabouttoendyourstorybyhackingyouandyouwillnotbeabletoserveanyone.html HTTP/1.1rnrn";
address=argv[1];
struct sockaddr_in server_address;
server_address.sin_family=AF_INET;
server_address.sin_port=htons(80);
inet_aton(address,(struct in_addr*)&server_address.sin_addr.s_addr);
T_occupy(msg,strlen(msg),&server_address,7);
return 0;
}
您正在传递&server_address
,它具有类型struct sockaddr_in **
connect
,它期望将struct sockaddr_in *
转换为struct sockaddr *
。 您还传递了指针的大小sizeof(server_address)
而不是结构的大小。
删除第二个参数中不需要的&
,并将*
添加到最后一个参数:
int connection_status=connect(my_socket,(struct sockaddr*)server_address,sizeof(*server_address));
相关文章:
- 对象内部对象的重载功能
- 案例内部的功能
- C 功能如何内部工作
- 如何在 OpenACC 中并行化内部具有"min"功能的循环
- 从内部功能中删除Smart_PTR
- C++ 静态内部功能
- 套接字连接在主功能内部但不在功能内部
- 如何创建功能以用受保护或私人侵犯的对象在对象内部操纵对象
- 如何将功能指针传递到该功能内部的函数
- 当指针作为指向另一个功能内部指针的指针传递时会发生什么
- IFDEF块内部对功能的未定义引用
- 具有模板类型内部功能的不同操作的NOExcept
- C 如何将数组传递到功能内部功能
- 在外部功能中具有一个变量初始化或内部功能中的多个初始化是最有效的
- C 常数和骨料内部功能主体与外部
- 访问主功能内部的私有数据
- 使用合格类型实例化的模板内部功能的名称分辨率
- 使用内部删除功能
- 与朋友在课堂上进行内部功能,以隐藏公共细节
- 在开关状态情况下,模板功能内部的不同类型的分配