本文整理汇总了C++中socket_connect函数的典型用法代码示例。如果您正苦于以下问题:C++ socket_connect函数的具体用法?C++ socket_connect怎么用?C++ socket_connect使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了socket_connect函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: logprintf
void *events_clientize(void *param) {
logprintf(LOG_STACK, "%s(...)", __FUNCTION__);
unsigned int failures = 0;
while(loop && failures <= 5) {
struct ssdp_list_t *ssdp_list = NULL;
int standalone = 0;
settings_find_number("standalone", &standalone);
if(ssdp_seek(&ssdp_list) == -1 || standalone == 1) {
logprintf(LOG_DEBUG, "no pilight ssdp connections found");
char server[16] = "127.0.0.1";
if((sockfd = socket_connect(server, (unsigned short)socket_get_port())) == -1) {
logprintf(LOG_DEBUG, "could not connect to pilight-daemon");
failures++;
continue;
}
} else {
if((sockfd = socket_connect(ssdp_list->ip, ssdp_list->port)) == -1) {
logprintf(LOG_DEBUG, "could not connect to pilight-daemon");
failures++;
continue;
}
}
if(ssdp_list) {
ssdp_free(ssdp_list);
}
struct JsonNode *jclient = json_mkobject();
struct JsonNode *joptions = json_mkobject();
json_append_member(jclient, "action", json_mkstring("identify"));
json_append_member(joptions, "config", json_mknumber(1, 0));
json_append_member(jclient, "options", joptions);
json_append_member(jclient, "media", json_mkstring("all"));
char *out = json_stringify(jclient, NULL);
socket_write(sockfd, out);
json_free(out);
json_delete(jclient);
if(socket_read(sockfd, &recvBuff, 0) != 0
|| strcmp(recvBuff, "{\"status\":\"success\"}") != 0) {
failures++;
continue;
}
failures = 0;
while(loop) {
if(socket_read(sockfd, &recvBuff, 0) != 0) {
break;
} else {
events_queue(recvBuff);
}
}
}
if(recvBuff) {
FREE(recvBuff);
recvBuff = NULL;
}
socket_close(sockfd);
return 0;
}
开发者ID:Johan-M,项目名称:pilight,代码行数:60,代码来源:events.c
示例2: socket_setup
int socket_setup(void)
{
s8 rc = SOC_SUCCESS;
if (setting.addr_type == ADDR_TYPE_IP)
{
return socket_connect(setting.ipaddr);
}
else
{
u8 ipaddr[4] = {0};
u8 len = 0;
eat_soc_gethost_notify_register(hostname_notify_cb);
rc = eat_soc_gethostbyname(setting.domain, ipaddr, &len, request_id++);
if (rc == SOC_WOULDBLOCK)
{
LOG_DEBUG("eat_soc_gethostbyname wait callback.");
return ERR_WAITING_HOSTNAME2IP;
}
else if (rc == SOC_SUCCESS)
{
LOG_DEBUG("host:%s -> %d.%d.%d.%d:%d.", setting.domain, ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3], setting.port);
return socket_connect(ipaddr);
}
else
{
LOG_ERROR("eat_soc_gethostbyname error!");
return ERR_GET_HOSTBYNAME_FAILED;
}
}
}
开发者ID:xunce,项目名称:Electrombile_Firmware,代码行数:33,代码来源:socket.c
示例3: proxy_connect
int proxy_connect(struct proxy *self, const char *dst_ip, unsigned short dst_port)
{
int err;
err = socket_connect(self->s, self->ip, self->port);
if (err < 0)
return err;
struct socket5_select_request request;
struct socket5_select_response response;
assert(self->ip);
assert(self->usr);
assert(self->pwd);
err = socket_connect(self->s, self->ip, self->port);
if (err < 0)
return err;
request.ver = 0x05;
request.method_nr = 2;
request.method_tbl[0] = 0x00; /* no auth */
request.method_tbl[2] = 0x02; /* user pwd */
err = socket_send_data(
self->s,
(char *)&request,
2 + request.method_nr * sizeof(request.method_tbl[0])
);
if (err < 0)
return err;
err = socket_recv_data(
self->s,
(char *)&response,
sizeof(response)
);
if (err < 0)
return err;
if (response.method == 0x02)
err = auth(self->s, self->usr, self->pwd);
if (err < 0)
return err;
err = conn(self->s, dst_ip, dst_port);
return err;
}
开发者ID:findstr,项目名称:proxy-socket5,代码行数:52,代码来源:proxy.cpp
示例4: connection_client_connect
int
connection_client_connect(struct connection *c,
const struct sockaddr *server_address,
size_t server_address_length,
uint32_t seed)
{
int ret;
struct timeval tv;
assert(c->client.client == NULL);
int fd;
const struct addrinfo *socks4_address =
c->instance->config->socks4_address;
if (socks4_address != NULL) {
fd = socket_connect(socks4_address->ai_family, SOCK_STREAM, 0,
socks4_address->ai_addr, socks4_address->ai_addrlen);
if (fd < 0)
return -fd;
if (!socks_connect(fd, server_address))
return -1;
} else {
fd = socket_connect(server_address->sa_family, SOCK_STREAM, 0,
server_address, server_address_length);
if (fd < 0)
return -fd;
}
ret = uo_client_create(fd, seed,
c->client_version.seed,
&client_handler, c,
&c->client.client);
if (ret != 0) {
close(fd);
return ret;
}
if (client_version_defined(&c->client_version))
uo_client_set_protocol(c->client.client,
c->client_version.protocol);
tv.tv_sec = 30;
tv.tv_usec = 0;
evtimer_set(&c->client.ping_event, connection_ping_event_callback,
&c->client);
evtimer_add(&c->client.ping_event, &tv);
return 0;
}
开发者ID:cculianu,项目名称:uoproxy,代码行数:51,代码来源:cclient.c
示例5: bot_init_connection
bool
bot_init_connection(struct bot *bot)
{
DEBUG(LOG_VERBOSE, "bot init connection\n");
return socket_connect(bot->socket);
}
开发者ID:dzruyk,项目名称:win-malware-tests,代码行数:7,代码来源:corebot.c
示例6: run_networking_test
static void run_networking_test(bool server)
{
if (!server) {
connection_t *conn = connection_create(&on_connect);
if (!conn)
return;
printf("connecting to localhost on port 1337\n");
socket_connect(conn, "127.0.0.1", "1337");
char buffer[1024];
while (fgets(buffer, sizeof buffer, stdin))
socket_write(conn, buffer);
} else {
socket_t *sock = socket_create(on_accept);
if (!sock)
return;
printf("Server will bind to port 1337.\n");
socket_listen(sock, NULL, 1337, 10);
while (1) {
sleep(5);
printf("%d connections ATM\n", sock->num_connections);
}
}
}
开发者ID:tachometer,项目名称:csnippets,代码行数:26,代码来源:tests.c
示例7: main
int main(int argc, char **argv) {
initiate(argc, argv); /* initialize executor */
#ifndef BASIC
socket_setup();
network_socket = socket_connect();
#endif
runsys(); /* initialize running system */
if (has_network_socket()) {
request_id();
GraphRes = get_graph_res();
graph_setstatus();
if (GraphRes < 0) exit(12);
if (remote) send_ready();
}
setjmp (contenv); /* set label for continue long jump */
while (TRUE) { /* repeat until exit() is called */
get_internal();
schedule(); /* reschedule current process */
if (ready != 0) {
decode(); /* fetch instruction */
execute(); /* and execute it */
}
}
return 0;
} /* end main */
开发者ID:lemlang,项目名称:loglan82,代码行数:27,代码来源:cint.c
示例8: socket_connect
void *__server(void *ptr)
{
t_context *C=ctx_get();
char msg[30];
if(!server_init)
{
socket_connect(C->server->socket,9901);
server_init=1;
sprintf(msg,"listening on port %d",C->server->socket->portno);
term_print(C->term,msg);
if(C->app->off_screen)
{
printf("listening on port %d\n",C->server->socket->portno);
}
}
else
{
socket_listen(C->server->socket);
if(C->app->off_screen)
{
printf("waiting for connection");
}
}
return NULL;
}
开发者ID:BlackBoxe,项目名称:minuit,代码行数:28,代码来源:server.c
示例9: nettest2
int nettest2(void)
{
int err;
sockaddr addr;
fd = socket_create(SOCK_PROTO_TCP, 0);
printf("created socket, fd %d\n", fd);
if(fd < 0)
return 0;
memset(&addr, 0, sizeof(addr));
addr.addr.len = 4;
addr.addr.type = ADDR_TYPE_IP;
addr.port = 9;
NETADDR_TO_IPV4(addr.addr) = IPV4_DOTADDR_TO_ADDR(63,203,215,73);
err = socket_connect(fd, &addr);
printf("socket_connect returns %d\n", err);
if(err < 0)
return err;
for(;;) {
char buf[4096];
socket_write(fd, buf, sizeof(buf));
}
return 0;
}
开发者ID:HTshandou,项目名称:newos,代码行数:27,代码来源:main.c
示例10: nettest1
int nettest1(void)
{
int err;
sockaddr addr;
fd = socket_create(SOCK_PROTO_TCP, 0);
printf("created socket, fd %d\n", fd);
if(fd < 0)
return 0;
memset(&addr, 0, sizeof(addr));
addr.addr.len = 4;
addr.addr.type = ADDR_TYPE_IP;
// addr.port = 19;
// NETADDR_TO_IPV4(addr.addr) = IPV4_DOTADDR_TO_ADDR(63,203,215,73);
// addr.port = 23;
// NETADDR_TO_IPV4(addr.addr) = IPV4_DOTADDR_TO_ADDR(192,168,0,3);
addr.port = 6667;
NETADDR_TO_IPV4(addr.addr) = IPV4_DOTADDR_TO_ADDR(209,131,227,242);
err = socket_connect(fd, &addr);
printf("socket_connect returns %d\n", err);
if(err < 0)
return err;
exit_sem = _kern_sem_create(0, "exit");
_kern_thread_resume_thread(_kern_thread_create_thread("read_thread", &read_thread, NULL));
_kern_thread_resume_thread(_kern_thread_create_thread("write_thread", &write_thread, NULL));
for(;;)
_kern_sem_acquire(exit_sem, 1);
return 0;
}
开发者ID:HTshandou,项目名称:newos,代码行数:35,代码来源:main.c
示例11: nettest4
int nettest4(void)
{
int err;
sockaddr addr;
fd = socket_create(SOCK_PROTO_TCP, 0);
printf("created socket, fd %d\n", fd);
if(fd < 0)
return 0;
memset(&addr, 0, sizeof(addr));
addr.addr.len = 4;
addr.addr.type = ADDR_TYPE_IP;
addr.port = 1900;
NETADDR_TO_IPV4(addr.addr) = IPV4_DOTADDR_TO_ADDR(63,203,215,73);
err = socket_connect(fd, &addr);
printf("socket_connect returns %d\n", err);
if(err < 0)
return err;
usleep(5000000);
err = socket_close(fd);
printf("socket_close returns %d\n", err);
return 0;
}
开发者ID:HTshandou,项目名称:newos,代码行数:28,代码来源:main.c
示例12: int_to_string
Display *OpenDisplay(char *hostname, int port)
{
Display *display = NULL;
Socket *socket = NULL;
char *port_buf = NULL;
port_buf = int_to_string(port);
if (port_buf == NULL)
return NULL;
socket = socket_new(Socket_Blocking);
if (socket_connect(socket, hostname, port_buf) != 0) {
socket_free(socket);
free(port_buf);
return NULL;
}
free(port_buf);
display = (Display *) malloc(sizeof(Display));
display->socket = socket;
display->hostname = strdup(hostname);
display->port = port;
display->callbacks = callbacks_new();
return display;
}
开发者ID:cafiend,项目名称:W12,代码行数:28,代码来源:hlib.c
示例13: main
// main
//-----------------------------------------------------------------------------------
int
main (int argc, char *argv[])
{
int s, size;
pthread_t thread;
char buf[256];
if (argc == 1)
{
printf ("usage: client <server IP address>\n");
exit (1);
}
s = socket_connect (argv[1], 1024);
pthread_mutex_init (&g_mutex, NULL);
pthread_create (&thread, NULL, thread_recv, (void *) &s);
// メインループ
//---------------------------------------------------
while (g_main_loop)
{
fgets (buf, 256, stdin);
size = strlen (buf);
fprintf (stderr, "sending[%d] %s", size, buf);
socket_write (s, &size, sizeof (int));
socket_write (s, buf, size);
}
pthread_join (thread, NULL);
exit (0);
}
开发者ID:letrungkien211,项目名称:SoftwareIII,代码行数:35,代码来源:client.c
示例14: connect_server
/**
* 作用: 连接到一个FTP服务器,返回socket
* 参数: IP或域名, 端口
* 返回值: Socket套接字
* */
SOCKET connect_server(char *host, int port)
{
SOCKET ctrl_sock;
char buf[BUFSIZ];
int result;
ssize_t len;
memset(buf, 0, sizeof(buf));
ctrl_sock = socket_connect(host, port);
if (-1 == ctrl_sock)
{
return -1;
}
while ((len = recv(ctrl_sock, buf, BUFSIZ, 0)) > 0)
{
buf[len] = 0;
printf("buf\n");
}
sscanf(buf, "%d", &result);
if (FTP_SERVICE_READY != result)
{
logger.error("FTP not ready, close the socket!");
closesocket(ctrl_sock); // 关闭socket
return -1;
}
return ctrl_sock;
}
开发者ID:zanbin168,项目名称:ALEX,代码行数:33,代码来源:FTPAPI.cpp
示例15: ftp_pasv_connect
/**
* 作用: 连接到PASV接口
* PASV(被动)方式的连接过程是:
* 客户端向服务器的FTP端口(默认是21)发送连接请求,
* 服务器接受连接,建立一条命令链路。
* 参数: 命令链路SOCKET cmd-socket
* 返回值: 数据链路SOCKET raw-socket -1 表示创建失败
* */
SOCKET ftp_pasv_connect(SOCKET c_sock)
{
SOCKET r_sock;
int send_result;
ssize_t len;
int addr[6]; //IP*4+PORT*2
char buf[BUFSIZ];
char result_buf[BUFSIZ];
memset(result_buf, 0, sizeof(result_buf));
// 设置PASV被动模式
memset(buf, sizeof(buf), 0);
sprintf(buf, "PASV\r\n");
send_result = ftp_sendcmd_re(c_sock, buf, result_buf, &len);
if (send_result == 0)
{
sscanf(result_buf, "%*[^(](%d,%d,%d,%d,%d,%d)", &addr[0], &addr[1], &addr[2], &addr[3], &addr[4], &addr[5]);
}
// 连接PASV端口
memset(buf, sizeof(buf), 0);
sprintf(buf, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
r_sock = socket_connect(buf, addr[4] * 256 + addr[5]);
if (r_sock == -1)
{
return -1;
}
return r_sock;
}
开发者ID:zanbin168,项目名称:ALEX,代码行数:37,代码来源:FTPAPI.cpp
示例16: main
// main
//-----------------------------------------------------------------------------------
int main(int argc, char *argv[])
{
int sock, size, ret;
char buf[BUFSIZE];
if (argc == 1) {
printf("usage: client <server IP address>\n");
exit(1);
}
sock = socket_connect(argv[1], PORT);
// メインループ
//---------------------------------------------------
do {
/* キー入力 */
fgets(buf, 256, stdin);
size = strlen(buf);
/* Serverへ送信 */
fprintf(stdout, "sending :[%d] (%d)%s", sock, size, buf);
write(sock, buf, size);
/* Serverから受信 */
ret = read(sock, buf, BUFSIZE);
fprintf(stdout, "received :[%d] (%d)%s", sock, ret, buf);
}
while (ret > 0);
socket_close(sock);
exit(0);
}
开发者ID:letrungkien211,项目名称:SoftwareIII,代码行数:35,代码来源:client-nomulti.c
示例17: connection_init
static int
connection_init( Connection* conn )
{
HttpService* service = (HttpService*) conn->root->service;
ProxyConnection* root = conn->root;
stralloc_t* str = root->str;
proxy_connection_rewind(root);
stralloc_add_format(str, "CONNECT %s HTTP/" HTTP_VERSION "\r\n",
sock_address_to_string(&root->address));
stralloc_add_bytes(str, service->footer, service->footer_len);
if (!socket_connect( root->socket, &service->server_addr )) {
/* immediate connection ?? */
conn->state = STATE_SEND_HEADER;
PROXY_LOG("%s: immediate connection", root->name);
}
else {
if (errno == EINPROGRESS || errno == EWOULDBLOCK) {
conn->state = STATE_CONNECTING;
PROXY_LOG("%s: connecting", root->name);
}
else {
PROXY_LOG("%s: cannot connect to proxy: %s", root->name, errno_str);
return -1;
}
}
return 0;
}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:30,代码来源:proxy_http_connector.c
示例18: socket_createConnector
int SocketConnector::connect( const std::string& address, int port, bool noDelay,
int sendBufSize, int rcvBufSize , int mode)
{
int socket = socket_createConnector(mode);
if ( socket != -1 )
{
if( noDelay )
socket_setsockopt( socket, TCP_NODELAY );
if( sendBufSize )
socket_setsockopt( socket, SO_SNDBUF, sendBufSize );
if( rcvBufSize )
socket_setsockopt( socket, SO_RCVBUF, rcvBufSize );
if( socket_connect( socket, address.c_str(), port ) < 0 )
{
DWORD code = GetLastError();
socket_close( socket );
SetLastError(code);
socket = -1;
}
else
{
m_monitor.addConnect( socket );
}
}
return socket;
}
开发者ID:ifzz,项目名称:FDK,代码行数:31,代码来源:SocketConnector.cpp
示例19: initSocket
virtual bool initSocket() {
if (socket==SOCKET_INVALID) {
socket = socket_create(AF_INET, SOCK_STREAM, IPPROTO_TCP, 54, 0);
sockaddr_t socketAddr;
int testResult = 0;
// the family is always AF_INET
socketAddr.sa_family = AF_INET;
socketAddr.sa_data[0] = 0;
socketAddr.sa_data[1] = 54;
// the destination IP address: 8.8.8.8
socketAddr.sa_data[2] = 127;
socketAddr.sa_data[3] = 0;
socketAddr.sa_data[4] = 0;
socketAddr.sa_data[5] = 1;
testResult = socket_connect(socket, &socketAddr, sizeof(socketAddr));
if (testResult) {
socket_close(socket);
socket = SOCKET_INVALID;
}
}
return socket!=SOCKET_INVALID;
}
开发者ID:adeeshag,项目名称:particle_project,代码行数:27,代码来源:usart_hal.cpp
示例20: http_query
int http_query(char *command, char *host, char *path, int port, char *additional_header, char *data, char *body) {
int s;
int status;
int response_length;
char buffer[BUFFER_SIZE];
char *pc;
if((s = socket_connect(host, port))){
bzero(buffer,BUFFER_SIZE);
if(data){
sprintf(buffer,"%s %.256s HTTP/1.0\nContent-length: %d\n\n", command, path, (int)strlen(data));
}else{
sprintf(buffer,"%s %.256s HTTP/1.0\n\n",command, path);
}
write(s, buffer, strlen(buffer));
// fprintf(stderr, buffer);
if(data){
write(s,data,strlen(data));
}
http_readline(s, buffer);
sscanf(buffer,"HTTP/1.%*d %03d",(int*)&status);;
while(http_readline(s, buffer)){
if(*buffer=='\0'){
break;
} else {
// fprintf(stderr, "line:%s\n", buffer);
for (pc=buffer; (*pc!=':' && *pc) ; pc++)
*pc=tolower(*pc);
sscanf(buffer,"content-length: %d",&response_length);
}
}
*body=0;
bzero(body,200000);
if(response_length>0){
// fprintf(stderr, "body length:%i\n", response_length);
read(s,body,response_length);
// fprintf(stderr, "body:%s\n", body);
}else{
bzero(buffer,BUFFER_SIZE);
while(read(s,buffer,BUFFER_SIZE)){
// fprintf(stderr,"read-%s\n",buffer);
strncat(body,buffer,BUFFER_SIZE);
bzero(buffer,BUFFER_SIZE);
}
}
shutdown(s, SHUT_RDWR);
close(s);
return status;
} else {
return -10;
}
}
开发者ID:chrisfarms,项目名称:nginx_ecmascript_module,代码行数:60,代码来源:http.c
注:本文中的socket_connect函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论