Ⅰ java Web项目怎么监听socket请求
不知道具此陵耐体需求是什么。如果用java web作为服务端,那可以汪裤在web项目启动的时候,增加socket监听服务。在web项目的listener增加启动类。
或者干脆使森春用如netty这样的IO框架。
Ⅱ Java socket通信中,当服务器端接受到监听客户端的请求后,如何主动给客户端发送数据
ServerSocket ss = new ServerSocket();
Socket s = ss.accept();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write("hello!");
Ⅲ 如何用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中ServerSocket监听端口时ip是什么
四个0,说明是全部的IP都监听
~
Ⅳ 如何使java socket服务器端在接收到了客户端的数据后还能够处于监听状态不要笼统的答案。
ServerSocket的对象调用accept()方法进行阻塞等待连接。
如果想接念敬受数据并处激高启于阻塞等等连接状态,使用while(true)循环监听明如。
while(true)
{
Sockets=ServerSocket_o.accept();//等待连接
Threadt=newSocketRead(s);//创建线程,SocketRead继承Thread,并重写run方法。
t.start();//启动线程用于从已建立的连接接受和发送数据。
}
Ⅵ java war项目中使用socket监听,重启项目出现端口被tomcat占用
端口号被占了,去关闭占用端口的程序,或者修改tomcat端口号
Ⅶ 如何监听 java socket
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编程中,为什么监听多个端口时出现有一个端口无法接受到信息,需要用到线程吗
您好,提问者:
其实线程的问题还是很难解决的,因为是随机的 。
但是也不是没有解决办法,是这样的,有些功能是必须用到线程的,如果不用线腊码程的话,可能会有接收不到的数据、停止后台超时等错误,建议使用线程。。。
举例:比如坦克大战、扑轮让哪克牌,不用线程是无法完成的,也不是无法完全,就是会数滑梁据接收不到。
Ⅸ java 如何在服务器端用socket创建一个监听端口,并对接受的数据进行处理,端口号为3333,请高手指点一下
我网络HI你好了
public class Test {
public static void main(String[] args) {
Test1 t=new Test1();
t.start(); //启动线程
}
}
/**
* 继承一个线程类
* @author Administrator
*
*/
class Test1 extends Thread{
private ServerSocket server = null;
public Test1(){
try {
server=new ServerSocket(3333);
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("服务端初始化scoket失败!");
}
}
/**
* 继承父类方法
*/
public void run(){
Socket clientSocket = null;
DataInputStream dis =null;
DataOutputStream dos=null;
String str="";
while(true){
try {
clientSocket=server.accept();
dis = new DataInputStream(clientSocket.getInputStream());//获取输入流,用于接收客户端发送来的数据
dos = new DataOutputStream(clientSocket.getOutputStream());//获取输出流,用于客户端向服务器端发送数据
str=dis.readUTF(); //这里是客户端发送来的数据
/*
* 这里边你就可以做你想操作的事情了
*/
dos.writeUTF("这里是返回到客户端的数据");//这里用来向客户端返回数据
dis.close();
dos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Ⅹ java socket客户端一直监听服务端返回数据
监听你系统通信所用的端口,有数据就获取显示就可以了。例如你的服务器ip是168.12.1.16,使用的是2000端口号,Socket socket=new Socket("168.12.1.16",2000);
DataOutputStream in=new DataOutputStream(socket.getInputStream());