java监听端口
❶ java如何进行监听某个端口
写个socket监听就可以了啊
❷ 在套头字编程中,服务器方需用到java类什么来监听端口
可以参考一下这段代码
//1. 构造ServerSocket实例,指定服务端口。
ServerSocket servSock = new ServerSocket(servPort);
while(true)
{
// 2.调用accept方法,建立和客户端的连接
Socket clntSock = servSock.accept();
SocketAddress clientAddress =
clntSock.getRemoteSocketAddress();
System.out.println("Handling client at " + clientAddress);
// 3. 获取连接的InputStream,OutputStream来进行数据读写
InputStream in = clntSock.getInputStream();
OutputStream out = clntSock.getOutputStream();
while((recvMsgSize = in.read(receiveBuf)) != -1)
{
out.write(receiveBuf, 0, recvMsgSize);
}
// 4.操作结束,关闭socket.
clntSock.close();
}
❸ java 一个服务器如何一直监听两个端口,就是让那两个端口的accpet( )一直处于 while(true)状态。
你是因为什么原因要终止这个线程的呢?直接把这个serverSocket close掉不行么?
如果你是因为程序出错,端口又被占用。可以这样查杀占用端口的进程。。。
netstat -na -o 找到占用1234端口的进程号
taskkill /pid 进程号
这样就可以杀死那个进程了····
如果是要在程序中控制的话,用close方法,然后把那个serverSocket置为null应该就可以了吧。。。
而且楼上说得对,你的程序本来就有问题,serverSocket 的实例话就不应该也在循环里面,估计你是接受到一个客户端以后,new 一个serverSocket ,继续绑定1234端口报错,所以才来提问的。这个是你程序的问题,并不需要去杀死那个什么线程。。。
❹ 如何用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 web应用如何获取监听端口号
如果是在jsp页面上
<%
intport=request.getServerPort();
%>
如果是在controller层java代码中
intport=request.getServerPort();//springMVC【request作为参数】或者servlet作为controller
intport=ServletActionContext.getRequest().getServerPort();//struts2版
了解一下requestjava WEB开发基础知识
❻ JAVA中如何监听一个端口来进入收和发信息!
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监听端口,怎么获取服务器的返回值能用requset吗
如果是web项目的话可以用request等对象来获取,
如果是socket项目的话要通过流来获取
❽ JAVA被占用端口的监听
1.调用系统命令, netstat -ano| grep <端口号>(linux)如果有记录则说明该端口被占用。
2.试图建立该端口号的socket链接。如果返回端口已绑定的错误,就说明被占了。
❾ java Socket编程中,为什么监听多个端口时出现有一个端口无法接受到信息,需要用到线程吗
您好,提问者:
其实线程的问题还是很难解决的,因为是随机的 。
但是也不是没有解决办法,是这样的,有些功能是必须用到线程的,如果不用线程的话,可能会有接收不到的数据、停止后台超时等错误,建议使用线程。。。
举例:比如坦克大战、扑克牌,不用线程是无法完成的,也不是无法完全,就是会数据接收不到。
❿ 服务器上如何运行Java程序这个程序主要是监听某个端口是否有信息的打包->上传->命令行运行
1.先安装j2sdk
我安装路径是:D:\Program Files\Java\j2sdk
2.再安装eclipse
Eclipse是绿色软件,不需要安装,把下载回来的eclipse压缩包解压就可以了
我安装的路径是:D:\Program Files\Java\eclipse
3.安装tomcat
下载回来的是一安装文件,按照安装提示进行就可以了
我安装的路径是:D:\Program Files\Java\Tomcat
4.安装eclipse插件
中文包
直接将压缩包NLpack-eclipse-SDK-3.0.x-win32内features和plugins两文件夹内的内容解压到eclipse文件夹内同名文件夹就可以了。
Tomcat插件
将压缩包tomcatPluginV3解压,把plugins文件夹内的内容解压到eclipse文件夹内同名文件夹就可以了。
三.环境配置
1.系统环境变量配置
右击“我的电脑”->高级->环境变量,
设置JAVA_HOME变量指向其安装的目录“D:\Program Files\Java\j2sdk”;
TOMCAT_HOME变量指向其安装的目录“D:\Program Files\Java\Tomcat”;
PATH变量中含有“%JAVA_HOME%\bin;”;
CLASSPATH变量含有“%JAVA_HOME%\lib\tools.jar;”;
2.eclipse中java运行环境的配置
在eclipse主窗口中,“窗口”->首选项->java->已安装的JRE,选我们已经安装的j2sdk
3. 配置Sysdeo Tomcat 插件
在eclipse主窗口中,“窗口”->首选项->tomcat,tomcat version 选 version 5.x(我们安装的版本),tomcat home 处填我们安装tomcat的路径,这里就是D:\Program Files\Java\Tomcat。
切换到Advanced选项,在tomcat base处再填我们安装tomcat的路径,这里就是D:\Program Files\Java\Tomcat。
切换到JVM Setting选项,确定jre是你已经安装的j2sdk版本,我们这里选j2sdk。
切换到Tomcat Manger App,为管理界面增加一个用户。
最后按应用按钮,然后在确定。