草庐IT

accepted

全部标签

sockets - SSL_accept() 失败,返回值 -1

为了理解SSL/TLS,我在Windows-7上下载了OpenSSL-1.0.2k并用Cygwin编译gcc64位编译器。我从OpenSSLserver/clientexampleinc中获取了服务器/客户端的现成示例并用cygwingcc编译。第一次编译就成功了。我使用以下命令从cmd执行服务器和客户端。(Server)D:\>ssl-server.exe5000(Client)D:\>ssl-client.exe127.0.0.15000客户端没有任何响应退出,但另一方面,服务器显示它已建立连接,例如;Connection:127.0.0.1:50475并无限期地等待下一行。然后我

c - accept() 返回无效参数

了解TCP连接。任何人都可以看到为什么我的accept()调用因“无效参数”而出错吗?我看不出我做错了什么。谢谢!intmain(intargc,char*argv[]){intsockfd,newfd;structsockaddr_inclientAddr;unsignedintrecvLen;socklen_taddr_size;fd_setread_set;structtimevaltv;//initializethefdsetFD_ZERO(&read_set);//preparetheaddressstructforthefirstclientbzero(&clientAdd

c++ - boost::asio::ip::tcp::acceptor 如何与 TCP_DEFER_ACCEPT 和 TCP_FASTOPEN 一起工作

boost::asio::ip::tcp::acceptor如何与TCP_DEFER_ACCEPT和TCP_FASTOPEN一起工作,当我使用纯C时,我可以设置一些参数,如TCP_DEFER_ACCEPT和TCP_FASTOPEN,以boosttcp/ip性能,如下所示:setsockopt(serverSock,IPPROTO_TCP,TCP_DEFER_ACCEPT,&soValue,sizeof(soValue));setsockopt(serverSock,SOL_TCP,TCP_FASTOPEN,&qlen,sizeof(qlen));但是当我使用boost::asio时,我

c++ - 调用 accept() 导致 WSAEFAULT 10014 Bad address

我正在为Windows编写自定义TCP服务器,使用MinGW编译器和winsock2API。我有这段代码:TCPSocketTCPSocket::accept(){TCPSocketclSocket;structsockaddr_inclAddr;socklen_tclAddrSize;clAddrSize=sizeof(clAddr);clSocket.shared->sockFd=::accept(shared->sockFd,(structsockaddr*)&clAddr,&clAddrSize);if(clSocket.shared->sockFdbuffer=newbyte

c++ - 带阻塞套接字的 SSL_accept

我制作了一个带有SSL和阻塞套接字的服务器。当我连接telnet时(因此它不进行握手),SSL_accept会无限期地阻塞并阻塞每个新的握手/接受(以及根据定义的新连接)。我该如何解决这个糟糕的问题? 最佳答案 为什么不在调用SSL_accept()之前将套接字流设置为非阻塞模式呢?,然后阻止类似select()的内容如果SSL_accept()返回SSL_ERROR_WANT_READ或SSL_ERROR_WANT_WRITE超时?或者,您可以在调用SSL_accept()之前阻止select()。要么应该工作。这样你至少可以限制

sockets - 做socket编程时accept函数一定要加锁吗?

所有worker都继承了父服务器的套接字描述符,并用它来接受客户端请求。子进程作为自治进程“并行”运行,并使用带有服务器套接字描述符的接受函数。接受客户端请求时,我是否必须为接受功能使用锁定和解锁机制,或者操作系统为我做这件事?这里的想法是多个进程使用公共(public)服务器套接字描述符来接受客户端请求。我是否必须使用互斥机制来屏蔽它以避免竞争条件或死锁?请注意我在accept函数中使用了非阻塞I/O。我有以下代码:for(;;){intclient=accept(...);if(client我应该使用类似的东西吗:for(;;){lock();intclient=accept(..

http - 什么控制 TCP 段是传递到传递给 accept() 的套接字还是传递给 accept() 返回的套接字?

在TCP套接字代码中,我们创建了2个套接字。第一个接受新连接,第二个接受来自客户端的数据并在新连接建立时创建。TCPheader中的哪个控制位允许服务器知道将此段传递给ServerSocket(发送连接请求的那个)还是Socket(连接建立后为通信创建的套接字)? 最佳答案 WhatcontrolbitintheTCPheaderallowstheservertoknowwhethertodeliverthissegmenttotheServerSocket(theonetowhichconnectionrequestsaresen

java - Android 手机上的 TCP 服务器在 .accept() 处崩溃

我是android的新手,但不是套接字。我有一个带有运行UAVServer线程的按钮的GUI。当我点击它时,服务器应该监听客户端。代码行...Socketclient=serverSocket.accept();...应该阻塞直到有客户端连接。但它只是崩溃说“不幸的是,DroidUAV已停止。”publicclassUAVServerextendsThread{privateStringTAG=UAVServer.class.getSimpleName();@Overridepublicvoidrun(){ServerSocketserverSocket;try{serverSocke

python - 实现 tcp 的 accept() 函数

作为学校作业的一部分,我们需要在python中实现一个非常简单的tcp版本。它自身的通信是通过udp套接字完成的。我的问题是accept()的实现,主要是支持多个客户端。我读了很多,但找不到任何来源来回答我的问题。这是我的代码:#Acceptsanincomingconnection.ThismethodblocksuntilanincomingSYNmessage#arrives,handlestheSYNmessageandreturnsthesocket.defaccept(self):ifself.state还有我的问题:新套接字应该响应syn数据包,还是旧(监听器)套接字应该

postgresql - HEROKU POSTGRES 错误 : Connection refused Is the server running on host "..compute-1.amazonaws.com..." and accepting TCP/IP connections on port 5432?

几周来我一直在努力找出问题所在,但我似乎无法解决这个问题。我正在开发一个网络应用程序,我已经使用Heroku部署到生产环境。我正在为我的数据库使用HerokuPostgres,我想从我的本地计算机psql到该托管数据库以对其进行更改。我在MacOSX和LinuxMint上都试过了。但是,无论我尝试什么,我都会不断收到以下错误:--->ConnectingtoHEROKU_POSTGRESQL_ORANGE_URL(DATABASE_URL)psql:couldnotconnecttoserver:ConnectionrefusedIstheserverrunningonhost"ec2