다른 사람들에게 배포하려는 프로그램을 작성하고 있지만 소켓을 사용하며 대부분의 보안 소프트웨어는이를 맬웨어로 취급합니다. 사람들에게 방화벽을 낮추고 프로그램에서 검사를 면제하도록 말하지 않고이 프로그램을 어떻게 작동시킬 수 있습니까? 내 소켓에 문제가 있거나 프로그램에 디지털 인증서가없는 문제가 있습니까?보안 소프트웨어가 내 소켓을 싫어합니다
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
int client(char *ip,int port,SOCKET *sock)
{
struct sockaddr_in addr;
*sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(ip);
addr.sin_port = htons(port);
connect(*sock,(SOCKADDR*)&addr,sizeof(addr));
return 2;
}
void ssend(char *buffer,int len,SOCKET sock)
{
int sent;
int *tmp;
char head[4];
sent=0;
tmp=(int*)&head;
*tmp=htonl(len);
while(sent<4)
{
sent+=send(sock,head,4-sent,0);
}
sent=0;
while(sent<len)
{
sent+=send(sock,buffer,len-sent,0);
}
}
void srecv(char *buffer,int *len,SOCKET sock)
{
char head[4];
recv(sock,head,4,MSG_WAITALL);
*len=ntohl(*((int*)head));
recv(sock,buffer,*len,MSG_WAITALL);
}
int main(int argc,char **argv)
{
WSADATA dat;
WSAStartup(MAKEWORD(2, 2),&dat);
SOCKET sock;
char ip[256];
char msg[1024];
int port;
scanf("%s",ip);
scanf("%d",&port);
printf("%d\n",client(ip,port,&sock));
while(1)
{
scanf("%s",msg);
ssend(msg,strlen(msg),sock);
}
}
예쁜 코드는 아닙니다. 나는 C로 소켓에 걸음 걸이를 얻으려고하고있다.
당신이하고있는 것을 볼 수 없으면 말하기 어렵습니다. –
오, 물론 코드에 추가하겠습니다. –
그 코드는 POSIX 소켓을 사용하고 있지만 대부분의 Linux 배포판에는 실행 파일을 맬웨어로 플래그 지정하는 "보안 소프트웨어"가 없습니다 ...이 프로그램이 실행해야하는 OS는 무엇입니까? – Borealid