『壹』 java怎么接收TCP/IP请求,只有socket那种方法吗
还有ACE,不过很少用
『贰』 Java Web项目怎么监听socket请求
不知道具体需求是什么。如果用java web作为服务端,那可以在web项目启动的时候,增加socket监听服务。在web项目的listener增加启动类。
或者干脆使用如netty这样的IO框架。
『叁』 用JAVA写一个SOCKET 接收TCP发来的消息
public class TalkServer{
static void main(String args[]) {
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
//创建一个ServerSocket在端口4700监听客户请求
}catch(Exception e) {
System.out.println("can not listen to:"+e);
//出错,打印出错信息
}
Socket socket=null;
try{
socket=server.accept();
//使用accept()阻塞等待客户请求,有客户
//请求到来则产生一个Socket对象,并继续执行
}catch(Exception e) {
System.out.println("Error."+e);
//出错,打印出错信息
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//由Socket对象得到输入流,并构造相应的BufferedReader对象
PrintWriter os=newPrintWriter(socket.getOutputStream());
//由Socket对象得到输出流,并构造PrintWriter对象
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
//由系统标准输入设备构造BufferedReader对象
System.out.println("Client:"+is.readLine());
//在标准输出上打印从客户端读入的字符串
line=sin.readLine();
//从标准输入读入一字符串
while(!line.equals("bye")){
//如果该字符串为 "bye",则停止循环
os.println(line);
//向客户端输出该字符串
os.flush();
//刷新输出流,使Client马上收到该字符串
System.out.println("Server:"+line);
//在系统标准输出上打印读入的字符串
System.out.println("Client:"+is.readLine());
//从Client读入一字符串,并打印到标准输出上
line=sin.readLine();
//从系统标准输入读入一字符串
} //继续循环
os.close(); //关闭Socket输出流
is.close(); //关闭Socket输入流
socket.close(); //关闭Socket
server.close(); //关闭ServerSocket
}catch(Exception e){
System.out.println("Error:"+e);
//出错,打印出错信息
}
}
}
『肆』 java Socket 长连接后,如何获取发来的数据
用一个死循环等着socket传数据过来,接一次数据循环一次,没有接到数据时,就是自动等待了。
『伍』 java:ServerSocket中获取所有连接上的Socket
可以的。
首先确保你已经建立了(对象名字是server),并接受到了连接:
ArrayList<Socket > sockets = new ArrayList<Socket>(); //保存所有接受的socket
while(true){ //一直接受连接
Socket s = server.accept();
sockets.add(s);
}
///得到仍处于连接当中的Socket
public ArrayList<Socket > getConnectedSockets(){
ArrayList<Socket > alivedSockets = new ArrayList<Socket>();
for(int i=0;i<sockets.size();i++){
if(sockets.get(i).isConnected()){
alivedSockets .add(sockets.get(i));
}
}
return alivedSockets;
}
『陆』 Java:这种是如何请求Socket的,第一次见
您好,一、建立服务器类
Java中有一个专门用来建立Socket服务器的类,名叫,可以用服务器需要使用的端口号作为参数来创建服务器对象。
ServerSocket server = new ServerSocket(9998)
这条语句创建了一个服务器对象,这个服务器使用9998号端口即在端口9998上注册服务,这里稍微要注意的是端口的分配必须是唯一的。因为端口是为了唯一标识每台计算机唯一服务的,另外端口号是从0~65535之间的,前1024个端口已经被Tcp/Ip 作为保留端口,因此你所分配的端口只能是1024个之后的。当一个客户端程序建立一个Socket连接,所连接的端口号为9998时,服务器对象server便响应这个连接,并且server.accept()()方法会创建一个Socket对象。服务器端便可以利用这个Socket对象与客户进行通讯。
Socket incoming = server.accept()() ; // 监听窗口,等待连接
进而得到输入流和输出流,并进行封装
BufferedReader in = new BufferedReader(new
InputStreamReader(incoming.getInputStream()));
/*
当读取文件时,先把内容读到缓存中,当调用in.readLine()时,再从缓存中以字符的方式读取数据(以下简称“缓存字节读取方式”)。
*/
PrintWriter ut = new PrintWriter(incoming.getOutputStream(),true);
随后,就可以使用in.readLine()方法得到客户端的输入,也可以使用out.println()方法向客户端发送数据。从而可以根据程序的需要对客户端的不同请求进行回应。
在所有通讯结束以后应该关闭这两个数据流,关闭的顺序是先关闭输出流,再关闭输入流,即使用
out.close();
in.close();
二、建立客户端代码
相比服务器端,客户端要简单一些,客户端只需用服务器所在机器的ip以及服务器的端口作为参数创建一个Socket对象。得到这个对象后,就可以用"建立服务器"部分介绍的方法实现数据的输入和输出。
Socket socket = new Socket("168.160.12.42",9998);
或:
Socket socket = new Socket(InetAddress.getLocalHost(),5678); // 向主机名为InetAddress.getLocalHost()的服务器申请连接
客户机必须知道有关服务器的IP地址,对于着一点Java也提供了一个相关的类InetAddress 该对象的实例必须通过它的静态方法来提供,它的静态方法主要提供了得到本机IP 和通过名字或IP直接得到InetAddress的方法。
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
以上的程序代码建立了一个Socket对象,这个对象连接到ip地址为168.160.12.42的主机上、端口为9998的服务器对象。并且建立了输入流和输出流,分别对应服务器的输出和客户端的写入。
『柒』 java 如何从收到的socket中取得IP
首先知道socket类的对象的引用,然后调用该类的方法getInetAddress()就能够获取收到的socket对象的IP地址了。
『捌』 java 怎么获得socket流
public class Server {
public static void main(String args[]) throws IOException {
//为了简单起见,所有的异常信息都往外抛
int port = 8899;
//定义一个ServerSocket监听在端口8899上
ServerSocket server = new ServerSocket(port);
//server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的
Socket socket = server.accept();
//跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。
Reader reader = new InputStreamReader(socket.getInputStream());
char chars[] = new char[64];
int len;
StringBuilder sb = new StringBuilder();
while ((len=reader.read(chars)) != -1) {
sb.append(new String(chars, 0, len));
}
System.out.println("from client: " + sb);
reader.close();
socket.close();
server.close();
}
}
『玖』 Java中服务器端ServerSocket对象怎么获取服务器端地址和端口号,怎么获取远程请求的
ServerSocket s = new ServerSocket(8888);
while (true) {
// 建立连接
Socket socket = s.accept();
/ /getInetAddress()获取远程ip地址,getPort()远程客户端的断后好
"你好,客户端地专址信息: " + socket.getInetAddress() + "\t客户端通信端口号属: " + socket.getPort()
『拾』 JAVA Socket post请求方式
建议自己去读下HTTP协议 POST 后边是 页面地址?参数字符串 ,只见到你的内参数字符串了,要提交到哪个地址容完全不知啊。而且翻译的内容也并不是POST到翻译页面的,而是页面通过ajax POST到网络翻译接口的。直接访问网络翻译接口地址就行,网络翻译页面也是通过这个接口地址的。
http://fanyi..com/v2transapi
如果你了解HTTP协议或者想学习HTTP协议 你可以通过socket 或者 telnet来访问页面,如果你只是要功能的话,还是去用HTTPClient或者HttpURLConnection吧,毕竟省去不少代码。