导航:首页 > IDC知识 > 监听服务器端口

监听服务器端口

发布时间:2020-11-23 05:30:31

1、Linux中如何查看服务及监听端口

可以通过netstat命令进行简单查询
netstat命令各个参数说明如下:
内-t : 指明显容示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
-n : 不进行DNS轮询,显示IP(可以加速操作)
3
即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··
netstat -ntlp //查看当前所有tcp端口·
netstat -ntulp |grep 80 //查看所有80端口使用情况·
netstat -an | grep 3306 //查看所有3306端口使用情况·

2、服务器是如何监听端口发过来的数据

在收到消来息的函数里面,会有一个参数源,如果是用Windows API做的话,就有一个sockaddr_in的结构体,里面包含了对方的IP和端口,记得端口是高低字节错位的,把高8位和低8位调换一下就好了。
有了对方的IP和端口,直接再向这个IP和端口发消息就好了。

3、易语言服务器如何监听客户端口

可以考虑用JAVA实现监听客户端口,参考例子如下:

package test; 
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
/**
 * 该程序用的DatagramSocket,实现UDP的通讯
 * @author D'Addario
 *
 */
public class Test{
 
    private int headLen = 12;//消息起点和终点的记录 例如classAclassB就是发往classA的消息,发送者是classB
    private Random random;
    private String serverIp;
    private int serverPort;
    private  HashMap<String,Classes> map ;
    {
        serverIp = "127.0.0.1";
        serverPort = 9999; 
        random = new Random(System.currentTimeMillis());
        map = new HashMap<String,Classes>();
        Classes A = Test.this.new Classes();
        A.ip = "127.0.0.1";
        A.name = "我是A";
        A.port = 10000;
        map.put("classA", A);
 
        Classes B = Test.this.new Classes();
        B.ip = "127.0.0.1";
        B.name = "我是B";
        B.port = 10001;
        map.put("classB", B);
    }
    public static void main(String[] a) throws  Exception{
        Test test = new Test();
        new Thread(test.new Server()).start();
        Client client1 = test.new Client();
        client1.mine = "classA";
        client1.remote = "classB";
        new Thread(client1).start();
 
        Client client2 = test.new Client();
        client2.mine = "classB";
        client2.remote = "classA";
        new Thread(client2).start();
 
    }
    /**
     * 成员 用于记录 每个成员的个性信息
     * @author D'Addario
     *
     */
    private class Classes {
        private String name ; //成员姓名
        private String ip ; //成员ip
        private int port;//成员的client server 监听端口
    }
    /**
     * server 用于转发两个client之间消息的类
     * @author D'Addario
     *
     */
    private class Server implements Runnable{
 
        public void run() {
            // TODO Auto-generated method stub
            boolean start = false;
            DatagramSocket socket = null;
            try {
                socket = new DatagramSocket(serverPort);
                start = true;
            } catch (SocketException e1) {
 
                e1.printStackTrace();
            }
            while(start)
            {
 
                try {
 
                    byte[] data = new byte[1024];
                    DatagramPacket packet = new DatagramPacket(data,data.length);
                    socket.receive(packet);
                    int len = packet.getLength();
                    //System.out.println("recevie data:"+new String(data,0,len));                
                    if(len<headLen)
                        throw new IOException("无效数据");
                    String id = new String(data,0,headLen/2);//获取发往对象的ID
                    String id2 = new String(data,headLen/2,headLen/2);    
                    System.out.println("receive from "+id2 +", send to "+id+",msg["+new String(data,headLen,len-headLen)+"]");
                    Classes one = map.get(id.trim());        
                    DatagramPacket retPack = new DatagramPacket(data,0,len,InetAddress.getByName(one.ip),one.port);
                    socket.send(retPack);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
    /**
     * Client 客户端类,用于客户端消息的发送
     * @author D'Addario
     *
     */
    private class Client implements Runnable{
 
        private String mine;
        private String remote;
 
 
        public void run() {
            // TODO Auto-generated method stub
            String msg = remote+mine;
            DatagramSocket socket = null;
            try {
                socket = new DatagramSocket(map.get(mine).port);
                ClientServer srv=new ClientServer();
                srv.setSocket(socket);
                new Thread(srv).start();
            } catch (SocketException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            byte[] data ;
            while(true)
            {
                String sendStr = msg + "给我"+random.nextInt(5000)+"分吧";
                data = sendStr.getBytes();
 
                try {
                    DatagramPacket retPack = new DatagramPacket(data,0,data.length,InetAddress.getByName(serverIp),serverPort);
                    socket.send(retPack);
                    Thread.sleep(random.nextInt(5)*1000);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
 
 
            }
        }    
    }
    /**
     * 客户端server 用于监听服务器的消息
     * @author D'Addario
     *
     */
    private class ClientServer implements Runnable{
        DatagramSocket socket ;
 
        public DatagramSocket getSocket() {
            return socket;
        }
 
        public void setSocket(DatagramSocket socket) {
            this.socket = socket;
        }
 
        public void run() {
            byte[] data = new byte[1024];
            DatagramPacket packet = new DatagramPacket(data,data.length);
            while(true){
                try {
                    socket.receive(packet);
                    int len = packet.getLength();
                    if(len<headLen)
                        throw new IOException("无效数据");
                    System.out.println("I get the message :"+Thread.currentThread().getId()+"-->["+new String(data,0,len)+"]");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }    }        
        }
 
    }
 
}

4、服务器:“监听端口号”中的监听是什么意思?

监听就是服务器上的软件一直查看特定的端口,如果有从这个端口访问的就接管

5、如何让服务器监听两个端口?

最合理的方式是建立多个线程,每个线程监听一个端口。
当然一段代码轮询监听也不是不可以,但在效率上要低不少

6、dns服务器的监听端口是哪个端口

对应的服抄务会起相应袭的端口。譬如FTP是20和21的默认端口,网页是默认监听80端口,DNS默认是53端口等等。
windows中,可以通过netstat -ano命令来查看相关软件使用的端口。
linux中,可以通过netstat -ant命令来看相关软件使用的端口。

7、windows下node服务器监听的端口号如何修改

代码如下:
var http=require(‘http’版);
var url=require(‘url’);
function start(){
function onRequest(req,res){
权res.writeHead(200,{‘Content-type’:‘text/plain’});
res.write(‘hello world’);
res.end();
}
var server=http.createServer(onRequest);
server.listen(80,‘ccc.com’);
console.log(‘Server is started’);
}
start();

8、php 如何监听服务器端口

<?php
//设置运行时间:永不超时
set_time_limit (0);

//开启缓冲
ob_implicit_flush ();

//IP地址
$ip = "127.0.0.1";

//监听端口
$port = 80;

//创建socket
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
if (!$socket){
die("创建socket失败!").socket_strerror(socket_last_error());
}

//绑定socket
$bind = socket_bind ($socket, $ip, $port);
if (!$bind){
die("绑定.socket失败!").socket_strerror ($bind);
}

//监听socket
$listen = socket_listen ($socket);
if (!$listen){

die("监听失败!").socket_strerror ($listen);
}
echo "{$port}端口监听成功!";
?>

9、服务器监听端口号起什么作用

服务器端口号 ,是服务器监听客户端用的 ,相当于"地址" ,是服务器与客户端间的纽带 .
举个例子:你登陆QQ ,你把你的用户名和密码输入后,点击"登陆" ,此时,客户端就会把你的密码和用户名发送到该端口的端口号.然后服务器经过到数据库验证,如果正确,就会把正确的信息发给你的客户端(就是你 的电脑) .

端口有好多,电脑中有9000多个已经规定好的端口,还有好多自己定义的端口,8000 ,10000

不懂的还可以找我
[email protected]

与监听服务器端口相关的知识