㈠ java多端口监听
序调用的这些端口(有些恶意程序可随意改变端口功能滴),可以尝试着把所用的应用程序和网页都关掉然后再看一下端口的情况怎样。最后如果楼主以后想要做一些“小实验”或带有一些危险性的小动作的话,推荐楼主还是考虑在虚拟机下先实验一下真正摸清弄明白了再在自己机器上HAPPY!!~~
(虚拟机主要有vmware 及微软的virtualpc等,都挺好用!~~)
㈡ java web应用如何获取监听端口号
如果是在jsp页面上
<%
intport=request.getServerPort();
%>
如果是在controller层java代码中
intport=request.getServerPort();//springMVC【request作为参数】或者servlet作为controller
intport=ServletActionContext.getRequest().getServerPort();//struts2版
了解一下requestjava WEB开发基础知识
㈢ java服务端如何实现与客户端的多个端口通信
Java里面的Socket貌似是不支持一个端口同时和对方多个端口同时连接的
(如果可以,那说明我才疏学浅)
Java的 Socket基本思路是一个固定端口监听,然后accept一个连接之后,本地和对方通信的端口是随机产生的一个,而不是这个监听的端口。
你说的这种需求,其实操作系统是支持得很好的。比如Windows里有一个网络编程模型(一种事件驱动模型)是这样的:当某个端口上发生了某个事件时,调用事件处理的函数,然后函数里根据事件类型作出相应的处理,事件类型包括连接、收到数据、对方关闭等等。LZ可从这方面找找java有无相关的第三方库可用。
告诉你几个可搜索的关键词WSAEventSelect (http://ke..com/view/2440218.htm)
㈣ 用java的Udp写聊天程序,为什么不能实现一个端口号同时向两个端口号发送消息不知如何实现,请高手解答
使用DatagramSocket和DatagramPacket
其中DatagramSocket使用一个发送的端口号
DatagramPacket的参数
DatagramPacket(bytes[] bytes,int bytes[].length,InetAddress ip, int port);里的就是目标端口
要向两个端口号发送,需要创建两个DatagramPacket,分别填写两个IP地址和端口号,并用DatagramSocket发送。
另外两个端口需要做监听
要注意ip要为局域网可以畅通无阻,广域网可能导致网管阻止
下面是个例子,发两遍即可。
int SERVER_PORT=7000;
String severIp="192.168.1.100";
DatagramSocket clientSocket;
try
{
InetAddress local = InetAddress.getByName(severIp);
DatagramPacket dPacket;
clientSocket = new DatagramSocket;
dPacket = new DatagramPacket("Hello".getBytes("utf-8"),"Hello".getBytes("utf-8").length,
local, SERVER_PORT);
clientSocket.send(dPacket);//这里是发送
byte[] msg = new byte[11246];
DatagramPacket rPacket = new DatagramPacket(msg, msg.length);
clientSocket.receive(rPacket);//这里是接收监听
}
catch (IOException e)
{
e.printStackTrace();
}
clientSocket.close();
㈤ java Socket编程中,为什么监听多个端口时出现有一个端口无法接受到信息,需要用到线程吗
您好,提问者:
其实线程的问题还是很难解决的,因为是随机的 。
但是也不是没有解决办法,是这样的,有些功能是必须用到线程的,如果不用线程的话,可能会有接收不到的数据、停止后台超时等错误,建议使用线程。。。
举例:比如坦克大战、扑克牌,不用线程是无法完成的,也不是无法完全,就是会数据接收不到。
㈥ 如何用JAVA代码监听某个开放端口
比如我要监听1234这个端口,代码如下:
String ip = "127.0.0.1";
int port = 1234;
try {
Socket socket = new Socket(ip, port);
socket.setSoTimeout(5539900);
java.io.OutputStream out = socket.getOutputStream();
byte[] date = "hello world".getBytes();
out.write(data);
out.flush();
byte[] buffer = new byte[1024];
int len = -1;
java.io.FileOutputStream fout = new java.io.FileOutputStream(
"d:/response.txt");
java.io.ByteArrayOutputStream bout = new java.io.ByteArrayOutputStream();
java.io.InputStream in = socket.getInputStream();
while ((len = in.read(buffer, 0, buffer.length)) > 0) {
bout.write(buffer, 0, len);
}
in.close();
bout.flush();
bout.close();
byte[] rdata = bout.toByteArray();
System.out.println(new String(rdata));
fout.write(rdata);
fout.flush();
fout.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
服务器端的
ServerSocket ss = new ServerSocket(1234);
Socket socket=null;
BufferedReader in;
PrintWriter out;
while (true) {
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
String line = in.readLine();
out.println("you input is :" + line);
out.close();
in.close();
socket.close();
}
㈦ 求java写的多线程socket端口监听服务器端程序,要代界面的.
业务需要这么复杂吗???如果你要实现服务器和客户端都可以向对方发送消息,而不等待对方应答,只需要把InputStream和OutputStream分别放在两个不同线程里就行了,即是说把接收流与发送流分别用一个线程监听处理。如果要实现不分客户端服务器的话,用UDP通信即可
补充回答:如果不涉及到MIME,只是收发简单文本邮件。就会比较简单。因为就像你说的,smtp和pop3协议就是文本格式的。你用Socket建立连接后,就像读文件一样,一行一行的读数据,然后按照协议分析数据格式。例如如果开始时USER那么后面可能跟的就是用户等。
就是一个字符串解析和匹配的过程。网上好像有这类代码,自己找一个学习一下。我以前用C在68k上作过,不是很难。不过代码已经没有了。
你的是邮件客户端,功能类似于outlook,foxmail等,如果你能上网,就不需要邮件服务器,直接用自己的邮件账号来测试,例如如果你有一个sina的邮件账户,就可以从sina服务器收发邮件。
不过为了测试方便,还是上网去收一个邮件服务器把。例如foxmail server等。网上有教程,可以配置好的。
对于编程,既然要求用socket编写,那么就要熟悉java的socket编程,这部分倒是很简单。可能还需要看看多线程部分。
另外,你需要学习一下, smtp和pop3这两个网络协议的内容,因为你需要解析这两个协议。如果需要收发代附件的,还需要看mime的内容,不过估计不需要。
其实java有自己的类库javamail,可以实现手法邮件,功能很强大。不过既然要求必须用socket,那就不能这个了。
说的太罗嗦了。总结一下:
1)配置邮件服务器,搭建测试环境
2)熟悉java的socket编程、 Swing编程(编写界面)、多线程(选用)
3)熟悉smtp和pop3的内容(内容很多,了解基本的就可以)
网上应该有类似代码,可以用来参考。