java 连接外网 用java写了个简易的聊天工具 但是只能在局域网里面使用 如何能够连接到外网 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以参考一下这个:连接到外网你知道把网址改一下就行了!服务器端:package test1.socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;/** * 类说明:编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。 * 服务器程序启动后,监听端口5678的请求;客户端程序启动后,向服务器端口5678发送请求。 * 服务器不断接收客户机所写入的信息,并且服务器也会做出"Receive"为回应,告知客户机已接收到消息。 * 要求:服务器程序采用多线程开发,允许多个客户端程序同时连接 。 客户机发送"End"字符串时,客户端程序退出。 * (服务端程序和客户端程序分别命名为Server.java和Client.java) * * @author 作者: LiuJunGuang * @version 创建时间:2011-4-6 下午11:08:23 */public class Server implements Runnable { private ServerSocket ss = null; public Server() { } @Override public void run() { try { ss = new ServerSocket(5678); } catch (IOException e1) { e1.printStackTrace(); } while (true) { try { Socket c = ss.accept(); // 读取信息 InputStream is = c.getInputStream(); DataInputStream dis = new DataInputStream(is); String str = dis.readUTF(); System.out.println("客户端发送的信息:" + str); // 相应信息 OutputStream os = c.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeUTF("Your write the words are :" + str); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { Server s = new Server(); Thread t = new Thread(s); t.start(); }}客户端package test1.socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.net.InetAddress;import java.net.Socket;import java.util.Scanner;/** * 类说明:编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。 * 服务器程序启动后,监听端口5678的请求;客户端程序启动后,向服务器端口5678发送请求。 * 服务器不断接收客户机所写入的信息,并且服务器也会做出"Receive"为回应,告知客户机已接收到消息。 * 要求:服务器程序采用多线程开发,允许多个客户端程序同时连接 。 客户机发送"End"字符串时,客户端程序退出。 * (服务端程序和客户端程序分别命名为Server.java和Client.java) * * @author 作者: LiuJunGuang * @version 创建时间:2011-4-6 下午11:08:23 */public class Client { public Client() { } public static void main(String[] args) { String word = ""; InetAddress add = null; try { add = InetAddress.getByName("localhost"); } catch (Exception e1) { e1.printStackTrace(); } while (!"End".equals(word.trim())) { Scanner scanner = new Scanner(System.in); word = scanner.nextLine(); try { Socket s = new Socket(add, 5678); // 写入信息 OutputStream os = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeUTF(word); // 读取信息 InputStream is = s.getInputStream(); DataInputStream dis = new DataInputStream(is); System.out.println(dis.readUTF()); } catch (Exception e) { e.printStackTrace(); } } }} 只要有对方的IP就行了 可以用数据包发送给多个IP 你好 我是在学校的网络 我上次写了一个客户端的代码 然后让我的外地的同学通过windows 自带的 telnet 程序来 连接我的电脑 可是不行 是不是因为我用的是虚拟ip 这样 他没有办法找到我的机器 就无法连接了 那我要怎么知道我真实的ip 是不是在设置地址的时候我设置的是自己的真实ip 就可以了 但是 我上次上网查了自己的真实的ip 但是 我朋友还是连不上 这是为什么 学校里面就别想了,大家都是共用一个真实IP的,管理员也不会把对那个真实IP的访问映射到你的本机学校一般是通过代理上的 紧急求助:如何把文本里保存的utf8编码中文读出来转成汉字 java打包成exe问题 新人报个到 java里能用js里的值么?? 哪有JAVA 2D的电子书?好像找不到一本JAVA 2D的书,有一本也是绝版缺货的. 向applet传参数? help 请问:谁能介绍一本JAVA网络编程方面的书?我看过欧里莱的简体中文版,很多地方看不明白。。。 JAVA有没有这样的类,或怎么表达这样的数据? 标题不知道写什么好,不过里面的问题对我到是很难,各位来看看吧! java的异常处理 java调用DLL文件问题,急~~~~~
服务器端:package test1.socket;import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;/**
* 类说明:编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。
* 服务器程序启动后,监听端口5678的请求;客户端程序启动后,向服务器端口5678发送请求。
* 服务器不断接收客户机所写入的信息,并且服务器也会做出"Receive"为回应,告知客户机已接收到消息。
* 要求:服务器程序采用多线程开发,允许多个客户端程序同时连接 。 客户机发送"End"字符串时,客户端程序退出。
* (服务端程序和客户端程序分别命名为Server.java和Client.java)
*
* @author 作者: LiuJunGuang
* @version 创建时间:2011-4-6 下午11:08:23
*/
public class Server implements Runnable {
private ServerSocket ss = null; public Server() { } @Override
public void run() {
try {
ss = new ServerSocket(5678);
} catch (IOException e1) {
e1.printStackTrace();
}
while (true) {
try {
Socket c = ss.accept();
// 读取信息
InputStream is = c.getInputStream();
DataInputStream dis = new DataInputStream(is);
String str = dis.readUTF();
System.out.println("客户端发送的信息:" + str);
// 相应信息
OutputStream os = c.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("Your write the words are :" + str);
} catch (IOException e) {
e.printStackTrace();
}
} } public static void main(String[] args) {
Server s = new Server();
Thread t = new Thread(s);
t.start();
}}客户端package test1.socket;import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;/**
* 类说明:编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。
* 服务器程序启动后,监听端口5678的请求;客户端程序启动后,向服务器端口5678发送请求。
* 服务器不断接收客户机所写入的信息,并且服务器也会做出"Receive"为回应,告知客户机已接收到消息。
* 要求:服务器程序采用多线程开发,允许多个客户端程序同时连接 。 客户机发送"End"字符串时,客户端程序退出。
* (服务端程序和客户端程序分别命名为Server.java和Client.java)
*
* @author 作者: LiuJunGuang
* @version 创建时间:2011-4-6 下午11:08:23
*/
public class Client { public Client() {
} public static void main(String[] args) {
String word = "";
InetAddress add = null;
try {
add = InetAddress.getByName("localhost");
} catch (Exception e1) {
e1.printStackTrace();
}
while (!"End".equals(word.trim())) {
Scanner scanner = new Scanner(System.in);
word = scanner.nextLine();
try {
Socket s = new Socket(add, 5678);
// 写入信息
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF(word); // 读取信息
InputStream is = s.getInputStream();
DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readUTF());
} catch (Exception e) {
e.printStackTrace();
}
}
}}
只要有对方的IP就行了 可以用数据包发送给多个IP
然后让我的外地的同学通过windows 自带的 telnet 程序来 连接我的电脑 可是不行
是不是因为我用的是虚拟ip 这样 他没有办法找到我的机器
就无法连接了 那我要怎么知道我真实的ip 是不是在设置地址的时候我设置的是自己的真实ip 就可以了
但是 我上次上网查了自己的真实的ip 但是 我朋友还是连不上 这是为什么