一同事在win7下使用无线网,启动tomcat后,与数据库连接时报如下错误:(tomcat 1.6,sqlserver 2008 r2, jdk 1.6)
严重: Socket accept failed
java.net.SocketException: select failed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
at java.net.ServerSocket.implAccept(ServerSocket.java:453)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:352)
at java.lang.Thread.run(Thread.java:619)
2011-8-31 15:36:59 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
在网上搜了一下,说是与ipv6 有冲突建议把ipv6 卸掉,觉得这种方法欠妥. 又搜了一下,说是设定tomcat参数,奏效记录下:
在tomcat bin 目录下找到 catalina.bat 文件,用文本编辑器打开,找到这一行:
set JAVA_OPTS=
在其后添加: (注意各参数用空格隔开)
-Djava.net.preferIPv4Stack=true
再启动后,OK
以上步骤简单来说: 就是让jvm使用 ipv4,不使用ipv6 . 总之,还是与ipv6冲突,不知是否是版本问题.
分享到:
相关推荐
Apache服务器错误问题 Apache服务器错误问题 Apache服务器错误问题
在eclipse中安装了Tomcat插件,启动Tomcat时出现以下问题: 严重: Socket accept failed,解决办法
### 网络编程Socket之accept函数详解 #### 一、引言 在网络编程中,服务器端接收客户端连接请求是一个非常关键的过程。这一过程通常由`accept`函数完成。`accept`函数的主要职责是从内核中取出已建立的客户端连接,...
"解决 Nginx 访问慢和 accept() failed 错误的方法" 在本文中,我们将讨论 Nginx 访问慢和 accept() failed 错误的解决方案。这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。下面是解决这个问题...
$client_socket = socket_accept($socket); if ($client_socket !== false) { echo "Accepted connection from client.\n"; // 接收并处理客户端数据 $data = socket_read($client_socket, 1024); echo ...
- `socket_accept($socket)` 接受客户端的连接请求,并返回一个新的 Socket 连接句柄 `$connection`。 2. **发送数据:** ```php if ($buffer != "") { socket_write($connection, $buffer . "\r\n"); } else...
当有客户端连接时,`accept`函数会返回一个新的socket用于与客户端通信。示例代码如下: ```c #include #include int main() { WSADATA wsaData; SOCKET serverSocket, clientSocket; SOCKADDR_IN serverAddr...
- **接受连接**:使用`accept`函数等待并接收客户端的连接请求,返回一个新的Socket用于与客户端通信。 - **数据交互**:通过`recv`和`send`函数读取客户端发送的数据,并将其回传给客户端。 - **清理资源**:最后...
而在C语言中,Socket编程涉及`<sys/socket.h>`头文件,使用`socket()`, `bind()`, `listen()`, `accept()`, `recv()`, 和 `send()`等函数。下面是一个C语言的简单服务器示例: ```c #include #include #include ...
SOCKET clientSocket = accept(serverSocket, (SOCKADDR*)&clientAddr, &clientAddrSize); if (clientSocket == INVALID_SOCKET) { std::cerr << "Failed to accept connection." ; closesocket(serverSocket); ...
int client_socket = accept(server_socket, NULL, NULL); if (client_socket ) { perror("accept failed"); exit(EXIT_FAILURE); } ``` 5. **发送/接收数据**:使用`send()`或`recv()`函数通过Socket发送和...
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen)) ) { perror("accept"); exit(EXIT_FAILURE); } // 发送数据 send(new_socket, hello, strlen(hello), 0); ...
4. **接受连接**:当有客户端请求连接时,`accept()`函数会返回一个新的Socket描述符,用于处理客户端的连接。 5. **数据传输**:使用`read()`和`write()`或`send()`和`recv()`函数进行数据的发送和接收。 6. **关闭...
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen))) { perror("accept"); exit(EXIT_FAILURE); } // 处理连接 // ... return 0; } ``` 通过上述分析可以看出,...
- 函数原型为`SOCKET accept(SOCKET s, struct sockaddr *addr, int *addrlen);` - 参数解释: - `s`是监听状态的Socket句柄。 - `addr`指向结构体的指针,用于保存客户端的地址信息。 - `addrlen`是地址信息的...
printf("accept failed with error: %d\n", WSAGetLastError()); closesocket(ListenSocket); WSACleanup(); return 1; } // 与客户端通信... // 关闭Socket closesocket(ClientSocket); closesocket...
if ((new_socket = accept(server_socket, (struct sockaddr *)&address, (socklen_t*)&addrlen))) { perror("accept"); exit(EXIT_FAILURE); } valread = read( new_socket , buffer, 1024); printf("%s\n",...
std::cerr << "Failed to accept connection" ; return 1; } // 发送数据 const char* message = "Hello, client!"; if (send(client_sockfd, message, strlen(message), 0) == -1) { std::cerr << "Failed ...
6. **accept()函数**:服务器使用,接收客户端的连接请求,返回一个新的Socket描述符用于通信。 7. **send()/recv()函数**:发送和接收数据。 8. **close()函数**:关闭Socket。 **三、Fork进程技术** Fork是Unix/...
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen)) ) { perror("accept"); exit(EXIT_FAILURE); } send(new_socket, hello, strlen(hello), 0); printf("Hello ...