永发信息网

java socket编程 怎么访问内网的服务器

答案:2  悬赏:20  手机版
解决时间 2021-02-19 02:24
在知道外网IP和内网IP的情况下,需要服务端和客户端分别怎么做,才能是客户端访问到内网的服务器?客户端是安卓
最佳答案
我的方向有点和你不一样,但是关于socket的一般是差不多的,建议你找找socket流的知识.
Socket内含输入,输出流,只需获取Socket的流对象,就可以对流进行读写操作了。比如,若想向Socket的输出流写数据,只须另一方从自己的Socket的输入流中读取数据即可给你个例子吧,是模拟客户端和服务器端的数据交互.
//客户端import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;
public class MyClent { public static void main(String[] args) { PrintStream ps = null; BufferedReader br = null; BufferedReader message = null; try { Socket scoket = new Socket("127.0.0.1", 1254); ps = new PrintStream(scoket.getOutputStream()); br = new BufferedReader(new InputStreamReader(scoket.getInputStream())); message = new BufferedReader(new InputStreamReader(System.in)); while(true){ ps.println("客户端向服务器发送的数据是:"+message.readLine()); System.out.println(br.readLine()); ps.flush(); } } catch (Exception e) { // TODO Auto-generated catch block...BufferedReader; TODO Auto-generated method stub PrintStream ps = null.getInputStream())).readLine()).
/ TODO Auto-generated catch block e; BufferedReader message = null,若想向Socket的输出流写数据.InputStreamReader.in)),只需获取Socket的流对象; BufferedReader br = null,就可以对流进行读写操作了;/.0;+message.flush().accept();/.net;import java;+message; ps.io,但是关于socket的一般是差不多的;font>.PrintStream, 1254); public static void main(String[] args) { /.BufferedReader;/客户端import java.io。比如;
public class MyServer {
/.Socket; try { ServerSocket server = new ServerSocket(1254).getOutputStream()).InputStreamReader.printStackTrace();p>,只须另一方从自己的Socket的输入流中读取数据即可给你个例子吧;** * @param args */
public class MyClent { public static void main(String[] args) { PrintStream ps = null.ServerSocket:"import java;服务器向客户端发送的数据是;服务器端import java; while(true){ System.getOutputStream()).println(".printStackTrace();/import java.flush().readLine());/.println(br; try { Socket scoket = new Socket("/import java; System,是模拟客户端和服务器端的数据交互.io.io;/ message = new BufferedReader(new InputStreamReader(System.println(br;127; ps,建议你找找socket流的知识.net; message = new BufferedReader(new InputStreamReader(System:"import java; ps = new PrintStream(scoket.println(".1"<.in)).0.PrintStream.io;/.readLine());客户端向服务器发送的数据是; } }
} while(true){ ps; } } catch (Exception e) { / BufferedReader br = null;/.
Socket内含输入.io; br = new BufferedReader(new InputStreamReader(scoket; ps = new PrintStream(scoket,输出流; } } catch (Exception e) { //我的方向有点和你不一样
全部回答
我的方向有点和你不一样,但是关于socket的一般是差不多的,建议你找找socket流的知识.

socket内含输入,输出流,只需获取socket的流对象,就可以对流进行读写操作了。比如,若想向socket的输出流写数据,只须另一方从自己的socket的输入流中读取数据即可

给你个例子吧,是模拟客户端和服务器端的数据交互.

//客户端

import java.io.bufferedreader;

import java.io.inputstreamreader;

import java.io.printstream;

import java.net.socket;

public class myclent {

public static void main(string[] args) {

printstream ps = null;

bufferedreader br = null;

bufferedreader message = null;

try {

socket scoket = new socket("127.0.0.1", 1254);

ps = new printstream(scoket.getoutputstream());

br = new bufferedreader(new inputstreamreader(scoket.getinputstream()));

message = new bufferedreader(new inputstreamreader(system.in));

while(true){

ps.println("客户端向服务器发送的数据是:"+message.readline());

system.out.println(br.readline());

ps.flush();

}

}  catch (exception e) {

// todo auto-generated catch block

e.printstacktrace();

}

}

}

//服务器端

import java.io.bufferedreader;

import java.io.inputstreamreader;

import java.io.printstream;

import java.net.serversocket;

import java.net.socket;

public class myserver {

public static void main(string[] args) {

// todo auto-generated method stub

printstream ps = null;

bufferedreader br = null;

bufferedreader message = null;

try {

serversocket server = new serversocket(1254);

socket scoket = server.accept();

// new test(scoket);

ps = new printstream(scoket.getoutputstream());

br = new bufferedreader(new inputstreamreader(scoket.getinputstream()));

message = new bufferedreader(new inputstreamreader(system.in));

while(true){

system.out.println(br.readline());

ps.println("服务器向客户端发送的数据是:"+message.readline());

ps.flush();

}

} catch (exception e) {

// todo auto-generated catch block

e.printstacktrace();

}

}

}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
快乐大本营里面的人演过的电影
有次老公玩手机,见我和他抢死活不给我,样子很
梭边鱼有刺吗
节能减排 低碳生活论文
走进安徒生奖的纯美文学世界征文600字
请问从黑龙江到海南的火车票多少钱
中国邮政(腰陂邮政所)这个地址在什么地方,我
“恐怖片听起来吓人”里面的“吓人”用英语怎
游玩千年古城绍兴,并以大禹陵为起点,经历了
同步电机的瞬时转速可能大于同步转速么???
靖宇县景山镇地址在什么地方,想过去办事
之前我向她表白,她不肯答应,有一次我评论了
一级建造师证会覆盖二级建造师证吗
昨晚和喝多发信息给男朋友,乱说话了怎么办,
陈记香辣小龙虾地址在什么地方,想过去办事
推荐资讯
柳记蒸香鸭地址在哪,我要去那里办事
从西安坐火车咋去陕北榆林市府谷县大昌汗乡郭
新兴切面在什么地方啊,我要过去处理事情
新版Alienware15和17怎么样。值得买吗。有点
登封市郑州禅宗少林音乐大典中岳售票处地址在
悠悠球洗轴用火机里面的油行不???
用PSP怎么样把腿美化下 弄的瘦 求图解
工商银行三颗心适合办那种信用卡
公交车 上嘉线怎么样
开了空气净化器,紧闭门窗开空气净化器会不会
米其林轮胎什么时候进入中国的?
什么是学习动机?学习目标和学习动机是什么关
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?