使用Python 2.7 中的SimpleHTTPServer模块运行本地服务器
$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
Run Code Online (Sandbox Code Playgroud)
然后我使用 netstat 使用 8000 作为端口号过滤器来搜索该套接字,但是,我找不到任何带有过滤器的套接字(即使我打开浏览器窗口并访问127.0.0.1:8000)。
$ netstat | grep 8000
// "return Nothing"
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么我看不到 Python SimpleHTTPServer 绑定的套接字netstat?
我正在开发一个 C++ 项目。为了满足其中一项要求,我需要随时检查端口是否可在我的应用程序中使用。为了实现这一点,我提出了以下解决方案。
#include <iostream>
#include <cstdlib>
#include <stdexcept>
#include <string>
#include <stdio.h>
std::string _executeShellCommand(std::string command) {
char buffer[256];
std::string result = "";
const char * cmd = command.c_str();
FILE* pipe = popen(cmd, "r");
if (!pipe) throw std::runtime_error("popen() failed!");
try {
while (!feof(pipe))
if (fgets(buffer, 128, pipe) != NULL)
result += buffer;
} catch (...) {
pclose(pipe);
throw;
}
pclose(pipe);
return result;
}
bool _isAvailablePort(unsigned short usPort){
char shellCommand[256], pcPort[6];
sprintf(shellCommand, "netstat -lntu | awk '{print $4}' | grep ':' …Run Code Online (Sandbox Code Playgroud) 我是 NodeJS 新手,尝试在 Cloud9 IDE 中设置一个现有项目(由其他人开发)(我使用的是较旧的 Cloud9 帐户;因此不在 AWS 上运行)。我已经拉取了 git 并安装了所有东西。这一切似乎都没有问题。
\n要在 Cloud9 之外本地运行该应用程序,您可以启动服务器npm run start(我从开发该应用程序的人那里知道,这对他有用)。但我想在Cloud9中设置它,并且在Cloud9中需要先设置一些变量(如果我不先定义主机,则会给出错误“无效的主机头”)。因此,我使用以下两个命令:
export HOST=$C9_HOSTNAME && export PORT=8080\nnpm run start\nRun Code Online (Sandbox Code Playgroud)\n产生npm run start错误:
\n\n无法在 appname-username.c9users.io 找到开放端口。
\n网络错误消息:listen EADDRNOTAVAIL 35.189.252.103
\n
考虑到https://docs.c9.io/docs/run-an-application,我相信我的端口是正确的。我\xe2\x80\x99ve也尝试了值8081、8082和$PORT,但这些都不起作用。
\n有什么想法可以让 Cloud9 本地预览正常运行吗?
\n根据要求,一些线路来自start.js:
const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;\nconst HOST = process.env.HOST || \'0.0.0.0\';\nconsole.log(`1. The host is ${HOST} on port ${DEFAULT_PORT}`); //ADDED\n\nchoosePort(HOST, DEFAULT_PORT)\n .then(port => …Run Code Online (Sandbox Code Playgroud) 我刚刚意识到我的PC上有一个始终运行的进程inetinfo.exe.它似乎是IIS的一部分.即使我杀了它,它也会以明显不同的端口ID重新开始.
如何在Windows XP中看到哪个应用程序启动此过程?
使用netstat -i时,您将获得如下示例的输出:
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 214 0 0 0 139 0 0 0 BMRU
eth1 1500 0 656 0 0 0 34 0 0 0 BMRU
lo 16436 0 0 0 0 0 0 0 0 0 LRU
Run Code Online (Sandbox Code Playgroud)
根据http://tldp.org/LDP/nag2/x-087-2-iface.netstat.html上的Linux网络管理员指南
MTU和Met字段显示该接口的当前MTU和度量值.RX和TX列显示已接收或传输的数据包没有错误(RX-OK/TX-OK)或损坏(RX-ERR/TX-ERR); 丢弃了多少(RX-DRP/TX-DRP); 由于超限(RX-OVR/TX-OVR)丢失了多少.
具体接口的度量值究竟是什么意思?
如果您运行此示例,您将看到端口从未列出netstat.为什么?我怎么做到这一点?
#include <WinSock.h>
#include <io.h>
#include <stdio.h>
#pragma comment(lib, "WS2_32")
int main() {
WORD wVers = MAKEWORD(2, 2);
WSADATA wsa;
WSAStartup(wVers, &wsa);
SOCKET sock = socket(AF_INET, SOCK_STREAM, 6);
if (sock != INVALID_SOCKET) {
struct sockaddr_in addr = { 0 };
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
int addrlen = sizeof(addr);
bind(sock, (struct sockaddr *)&addr, addrlen);
if (getsockname(sock, (struct sockaddr *)&addr, &addrlen) == 0) {
fprintf(stdout, "HANDLE = %d, port = %d\n", sock, addr.sin_port);
fflush(stdout);
system("netstat -a -n");
} …Run Code Online (Sandbox Code Playgroud) 我有以下 udp 服务器:
/************* UDP SERVER CODE *******************/
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <stdlib.h>
int main(){
int udpSocket, nBytes;
char buffer[1024];
struct sockaddr_in serverAddr, clientAddr;
struct sockaddr_storage serverStorage;
socklen_t addr_size, client_addr_size;
int i;
/*Create UDP socket*/
udpSocket = socket(PF_INET, SOCK_DGRAM, 0);
/*Configure settings in address struct*/
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(20001);
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);
/*Bind socket with address struct*/
bind(udpSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr));
/*Initialize size variable to be used …Run Code Online (Sandbox Code Playgroud) 我使用下面的代码使用端口8080删除程序,但我收到错误| was unexpected at this time.,我该怎么办?
FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o | findstr :8080') DO TaskKill.exe /PID %P
Run Code Online (Sandbox Code Playgroud) 我需要查找我的 Mac 上的端口 9000 上是否有任何应用程序正在运行。
我正在运行docker-compose up以下 docker-compose.yml 文件:
version: '3.7'
services:
mysql_db_container:
image: mysql:latest
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: rootpassword
ports:
- "3306:3306"
volumes:
- mysql_db_data_container:/var/lib/mysql
adminer_container:
image: adminer:latest
environment:
ADMINER_DEFAULT_SERVER: mysql_db_container
ports:
- "8080:8080"
volumes:
mysql_db_data_container:
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ERROR: for mysql_db_container Cannot start service mysql_db_container: Ports are not available: listen tcp 0.0.0.0:3306: bind: address already in use
ERROR: Encountered errors while bringing up the project.
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下操作:
docker-compose stop && docker-compose down
Run Code Online (Sandbox Code Playgroud)
然后
docker ps -a
Run Code Online (Sandbox Code Playgroud)
结果是:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …Run Code Online (Sandbox Code Playgroud)