apache占用了80端口python的socket就不能用了啊,要不怎么知道数据发给谁呢,你可以让python使用80,apache使用别的,然后让python收到后转发给apache。
/
实在对不起。因为我现在没有调试运行环境(没装任何电子邮件程序),只是在后备的源码上删改的,没有运行确认。检查发现确实漏了这样一句:
tcph = (tcp_header ) ((u_char)ih + (ih->ver_ihl & 15)4);
还挺复杂,如果不清楚ip头的数据结构这一句还真对付不出来。加在ih=后面即可。
另外, buf[i]=0; 之前加上 buf[i++]='\n'; 可能使输出更好读。或者像下面这样改,就不用 flog 和 isFirst了。原来的struct tm ltime; 也不需要。
如果还不行,看来我就得装一个Foxmail实际调试了。
删改的结果可能还有错误或有的东西没有用到而没有删去。我注明了是参考 group__wpcap__tut6html
但详细网址已经记不得了,从别的文档检查,可能是 >
逻辑不正确
accSck = sckAccept();//是一个阻塞。当处理完一次后一直处于等待下一个连接。
正确流程写法:
// 开始监听
sck = new Socket(AddressFamilyInterNetwork, SocketTypeStream, ProtocolTypeTcp);
IPAddress ip = IPAddressParse(IP);
IPEndPoint point = new IPEndPoint(ip, port);
sckBind(point);
sckListen(10);
while(true)
{
accSck = sckAccept();
thread th=new Thread(word);
thisbackground=true;
thstart(accsck);
}
private void work(object socket)
{
Socket accSck=(Socket)socket;
byte[] buffer = new byte[1024 1024 10];
whil(true)
{
try{
accSckReceive(buffer); // 将字符流转换成文件 nRAR(fileName);
}catch
{
accSckClose();
}
}
}
你好亲远程端口没有监听任何服务原因和解决方法如下1,安全组未开放指定端口2,服务器开启了防火墙3,指定端口未处于工作监听状态(即被服务占用)4,指定端口处于工作监听状态,但绑定了指定ip地址(bindIp)解决方法如下命令行输入netca 回车运行oracle net configuration assistant,选择监听程序配置-》下一步-》接下来的步骤可以都选默认一直下一步到最后,即可。
在Windows XP中要查看系统端口,可以使用Netstat命令,点击开始---运行---键入cmd,打开命令提示符窗口,在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。
如何关闭端口:
在默认的情况下,有很多不安全的或没有什么用的端口是开启的,比如Telnet服务的23端口、FTP服务的21端口、SMTP服务的25端口、RPC服务的135端口等,为了系统的安全性,我们可以通过下面的方法来关闭端口:
比如关闭SMTP服务的25端口,可以这样做:打开控制面板----管理工具----服务,接着在打开的服务窗口中找到并双击“Simple Mail Transfer Protocol (SMTP)”服务,单击“停止”按钮来停止该服务,然后在“启动类型”中选择“已禁用”,最后单击“确定”按钮即可。这样,关闭了SMTP服务就相当于关闭了对应的端口。
还有种方法就是直接打开系统盘C:\WINDOWS\SYSTEM32\drivers\etc目录下的services文件,用记事本打开,你可以看到自己开放的所有端口,如果想关掉此端口,只要在前面加上“#”号就可以了。
补:Netstat命令用法:
命令格式:Netstat -a -e -n -o -s
-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
-e 表示显示以太网发送和接收的字节数、数据包数等。
-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。
-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
-s 表示按协议显示各种连接的统计信息,包括端口号
----------------------------------------------------------------------------------------------------------------------------------------------
进入CMD,输入netstat -ano就可以很清楚的看到本地80口占用程序的PID,然后再去任务管理器里查找到PID所对应的进程(如果任务管理器没有PID,查看-->选择列),原来是迅雷5给占用了,再去迅雷里查看设置,竟然BT的默认TCP传输端口是80,改掉设置,IIS启动正常了。。。
以上就是关于python怎样实现监听程序的端口。如apache开着, 一旦有数据到达80的端口 他就会记录下来全部的内容,包括:python怎样实现监听程序的端口。如apache开着, 一旦有数据到达80的端口 他就会记录下来、有没有什么函数能监听网络端口啊、用C#写了个Windows服务程序,监听某个端口是否有数据传来。但是为什么只能监听到第一次数据流等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)