小编cat*_*eof的帖子

如何在C中找到可以免费使用的端口?

操作系统是Linux.我有一个可以实时更改其端口的服务器进程.但是我想提前知道绑定前端口是否空闲.

场景:服务器绑定localhost:5000并接收在localhost:6000绑定的请求.服务器必须检查端口是否空闲.这个问题寻求提供检查端口是否空闲的例程的答案.

为了记录,我正在使用代码片段来编辑我的问题,该代码片段检查端口是否可以免费使用.这并不意味着它会被使用.下面的代码回答了"如果端口现在可用"的问题,它不会使用它.打开一个套接字,检查bind是否返回EADDRINUSE并关闭套接字.

#include <iostream>
#include <sys/socket.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <errno.h>

int main(int argc, char **argv) {

    struct sockaddr_in serv_addr;
    if( argc < 2 )
        return 0;
    int port = atoi(argv[1]);

    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if( sockfd < 0 ) {
        printf("socket error\n");
        return 0;
    } else {
        printf("Opened fd %d\n", sockfd);
    }

     bzero((char *) &serv_addr, sizeof(serv_addr));
     serv_addr.sin_family = AF_INET;
     serv_addr.sin_addr.s_addr = INADDR_ANY;
     serv_addr.sin_port = htons(port);
     if (bind(sockfd, (struct sockaddr *) &serv_addr, …
Run Code Online (Sandbox Code Playgroud)

c sockets linux network-programming

11
推荐指数
3
解决办法
2万
查看次数

Windows Phone 8和HTTPS/SSL

我需要在我的Windows Phone 8.0应用程序中通过HTTPS连接到Web服务.似乎Microsoft没有关于此问题的客户端SSL支持.

我真的需要知道如何处理WP8中的证书.什么是正确的证书?需要导入哪些证书?

场景:我有一个https端点:https://10.1.1.2当我从我的PC连接时,我被提示查看并安装服务器的证书.证书名称"根CA"正在本地保存.移动设备中安装了相同的证书,没有问题.当我https://10.1.1.2移动互联网浏览器打开它时,它通知我网页是安全的,我必须在关闭和继续页面之间做出选择.我点击继续,https://10.1.1.2交易发生.每次我通过移动互联网浏览器访问相同的URL时,最终用户都没有关于安全性的警告.

根据Microsoft的说法:在大多数情况下,除了使用以https://协议方案开头的地址外,您无需为Windows Phone应用程序启用此功能.然后,Windows Phone会检查Web服务返回的证书,如果证书来自Windows Phone OS 7.1的SSL根证书中列出的受信任权限之一,则Windows Phone应用程序平台会将证书与Web结合使用服务以加密所有进一步的通信,包括如前所述的认证凭证的交换.虽然您可以在Windows Phone上安装受信任的证书,但在当前版本中,Windows Phone应用程序平台不会将这些证书的值公开给应用程序.因此,在当前版本中,您无法实现相互身份验证方案 - 客户端将自己的证书发送到Web服务,除了接收一个 - 使用根存储中安装的证书.

那么,这个程序可以吗?我不能使用Microsoft默认信任的证书颁发机构之一.我需要代码吗?

ssl https windows-phone-8 windows-phone-8.1

11
推荐指数
1
解决办法
6006
查看次数

迭代一个STL容器而不是.begin()ing并回绕

我有一个std :: vector,简单来说就是整数.

std::vector<int> ivec;
ivec.push_back(1);
ivec.push_back(2);
... //omitting some push back's 3 to 99
ivec.push_back(100);
Run Code Online (Sandbox Code Playgroud)

迭代的标准方法是已知的

std::map<int>::iterator it;
for( it = ivec.begin(); it != ivec.end(); it++ ) 
  print();
Run Code Online (Sandbox Code Playgroud)

该迭代将打印1,2,3,... 100.

我想从预定义索引开始遍历所有向量元素,而不是从it.begin()遍历.我想打印

3,4,5,6 ... 99,100,1,2

你能在这里分享你的想法吗?

它可以分两步完成

for( it = ivec.begin()+index; it != ivec.end(); it++ ) and then (if index !=0)

for ( it = ivec.begin; it = it = ivec.begin() + (index-1); it++)
Run Code Online (Sandbox Code Playgroud)

c++ iterator vector std

10
推荐指数
2
解决办法
4415
查看次数

在客户端代码连接之前绑定

我有多个以太网I/F. eth0,eth1,eth2 ......我想连接到外部服务器,例如1.2.3.4:80.

我的连接没问题,但在某些特殊情况下我想连接为eth1而不是eth0.服务器的代码检查我的接口的IP地址.我认为我需要在连接之前绑定.如果没有bind(2),服务器总是从eth0获取数据包

我正在寻找演示此行为的代码.有没有人有一个例子的链接?

c linux network-programming

9
推荐指数
1
解决办法
3564
查看次数

带依赖关系的C++队列

我正在寻找具有各个任务之间依赖关系的排队/调度系统的原型或实现.更具体:

task_0,task_1,task_2,...任务10到达队列.任务是http请求.

我想仅在task_0完成时才发送task_2.可以发送task_1而无需期望task_1完成,但task_2必须等待.

想法?已存在且符合此描述的模型?

c c++ queue scheduled-tasks

9
推荐指数
1
解决办法
932
查看次数

使用NSDateFormatter将UTC转换为本地时间

我从iOS应用中的服务器获取以下字符串:

20140621-061250

如何将其转换为当地时间?

如何定义日期格式化程序?它是否正确?

dateFormatter.dateFormat = @"YYYYMMd-HHmmss"; 
Run Code Online (Sandbox Code Playgroud)

time cocoa cocoa-touch nsdateformatter date-parsing

9
推荐指数
3
解决办法
2万
查看次数

in_addr_t到string

我有存储在一个IP地址in_addr_t,我想创建该数据类型对应的字符串表示(例如in_addr_t10.0.0.1).

我怎样才能做到这一点?

c linux network-programming

8
推荐指数
1
解决办法
2万
查看次数

我可以在不使用system()命令的情况下在C中读/写路由表吗?

我有用C编写的代码.我想使用存储在路由表中的C代码信息.可能吗?

c linux networking routes

8
推荐指数
2
解决办法
2万
查看次数

pthreads,我怎么知道进程内的另一个线程没有等待?

操作系统是Linux,使用pthreads

我有两个永远运行的工作线程,直到一个stop变量值为true,并且线程正常终止.而不是忙于等待两个线程调用pthread_cond_wait直到信号通知新任务.该系统运作良好.

要求创建一个"info"线程,它将打印一些调试信息.信息线程将尝试每30秒读取和打印信息.这个信息的一部分,我想成为每个工作线程的状态.是否可以在"pthread_cond_wait"中查找线程是否被阻止?如果线程等待是pthread_cond_wait,那么STATE ==等待其他STATE ==运行.

 while ( (sharedvaluffer == 0) && (doneflag == 0) ) {
            pthread_cond_wait (&taks_added, &buffer);
        }    
Run Code Online (Sandbox Code Playgroud)

当然,我们可以做更多的代码.我们可以在上面的代码片段中添加一个全局变量,将该线程标记为已锁定.代码可以完成

while ( (sharedvaluffer == 0) && (doneflag == 0) ) {
                lock;
                i_am_waiting = truel
                unlock
                pthread_cond_wait (&taks_added, &buffer);
 } 
Run Code Online (Sandbox Code Playgroud)

问题是,如果有一种更容易扩展的方式.等待线程的堆栈是

Thread 6 (Thread 0x40800940 (LWP 20732)):
#0  0x00002ba4567a9326 in pthread_cond_wait@@GLIBC_2.3.2 ()
#1  0x00000000007ce2ed in worker(void*) ()
#2  0x00002ba4567a5193 in start_thread () from /lib64/libpthread.so.0
#3  0x00002ba458a82f0d in clone () from /lib64/libc.so.6
Run Code Online (Sandbox Code Playgroud)

c linux pthreads

8
推荐指数
1
解决办法
903
查看次数

Windows Phone的原生iOS/Android应用程序

我有一个iPhone应用程序(与Android对应),在Xcode中开发并用Objective-C编写.它是一款经典的原生iOS应用程序,已经在App Store中上传和上传.同样,Android版本是用Java构建的,并与android SDKs链接.它被上传到市场.

我被要求将应用程序移植到Windows Phone.这可能不修改代码吗?我不熟悉Windows Phone开发,但它看起来像是一个完全独立的生态系统,用于开发应用程序(不同的编程语言,不同的IDE,不同的应用商店等).

我可以从Android到Windows Phone或从iOS到Windows Phone吗?

PhoneGap - 或类似平台 - 不是选项,因为代码已经用Objective-C和Java编写.

iphone android ios windows-phone-8

8
推荐指数
1
解决办法
3639
查看次数