急!急!急!用java socket连接一个服务器和客户端实现通讯,登陆失败
用javasocket做了一个TCP/IP通讯程序,包括服务器和客户端,在局域网进行测试时,关闭防火墙,服务器正常启动,客户端在输入IP、端口后连接却显示登陆失败,是哪里...
用java socket做了一个TCP/IP通讯程序,包括服务器和客户端,在局域网进行测试时,关闭防火墙,服务器正常启动,客户端在输入IP、端口后连接却显示登陆失败,是哪里出了问题?
展开
2009-05-26
展开全部
好抽象的问题。。
没有抛出异常?!你至少把异常啥的贴出来吧。。
试着两台自己之间互相ping一下,如果连ping都不行,那试着把杀毒啥的都关了。再ping。如果还是不行,那没准是你物理连接有问题。如果试了直接ping是可以的,那么,应该就是你连socket都不熟悉,自己没把代码写好。。这个问题不知道异常是啥或者没有代码俺是没办法解决了。。
下面的代码可以试一下测试看看两台机子是不是可以建立连接。两边都试一下,看看行不行,如果不行,那么可能是你的jre有问题吧,又或者某XX类似防火墙的程序把你联网程序都封了~~
import java.net.*;
public class WriteServer {
public static int serverPort = 998;
public static int clientPort = 999;
public static int buffer_size = 1024;
public static DatagramSocket ds;
public static byte buffer[] = new byte[buffer_size];
public static void TheServer() throws Exception {
int pos=0;
while (true) {
int c = System.in.read();
switch (c) {
case -1:
System.out.println("Server Quits.");
return;
case '\r':
break;
case '\n':
ds.send(new DatagramPacket(buffer,pos,
InetAddress.getLocalHost(),clientPort));
pos=0;
break;
default:
buffer[pos++] = (byte) c;
}
}
}
public static void TheClient() throws Exception {
while(true) {
DatagramPacket p = new DatagramPacket(buffer, buffer.length);
ds.receive(p);
System.out.println(new String(p.getData(), 0, p.getLength()));
}
}
public static void main(String args[]) throws Exception {
if(args.length == 1) {
ds = new DatagramSocket(serverPort);
TheServer();
} else {
ds = new DatagramSocket(clientPort);
TheClient();
}
}
}
没有抛出异常?!你至少把异常啥的贴出来吧。。
试着两台自己之间互相ping一下,如果连ping都不行,那试着把杀毒啥的都关了。再ping。如果还是不行,那没准是你物理连接有问题。如果试了直接ping是可以的,那么,应该就是你连socket都不熟悉,自己没把代码写好。。这个问题不知道异常是啥或者没有代码俺是没办法解决了。。
下面的代码可以试一下测试看看两台机子是不是可以建立连接。两边都试一下,看看行不行,如果不行,那么可能是你的jre有问题吧,又或者某XX类似防火墙的程序把你联网程序都封了~~
import java.net.*;
public class WriteServer {
public static int serverPort = 998;
public static int clientPort = 999;
public static int buffer_size = 1024;
public static DatagramSocket ds;
public static byte buffer[] = new byte[buffer_size];
public static void TheServer() throws Exception {
int pos=0;
while (true) {
int c = System.in.read();
switch (c) {
case -1:
System.out.println("Server Quits.");
return;
case '\r':
break;
case '\n':
ds.send(new DatagramPacket(buffer,pos,
InetAddress.getLocalHost(),clientPort));
pos=0;
break;
default:
buffer[pos++] = (byte) c;
}
}
}
public static void TheClient() throws Exception {
while(true) {
DatagramPacket p = new DatagramPacket(buffer, buffer.length);
ds.receive(p);
System.out.println(new String(p.getData(), 0, p.getLength()));
}
}
public static void main(String args[]) throws Exception {
if(args.length == 1) {
ds = new DatagramSocket(serverPort);
TheServer();
} else {
ds = new DatagramSocket(clientPort);
TheClient();
}
}
}
Storm代理
2023-05-30 广告
2023-05-30 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询