当前位置:首页 » 云服务器 » 服务器封装地址java

服务器封装地址java

发布时间: 2023-01-09 19:54:39

java中如何完成UDP包的封装

给你一段代码,或许可以帮到你……

public class SendSideTest {
/*发送数据 */
public static void main(String[] args) throws IOException {
//1 DatagramSocket是用来接收发送数据的
DatagramSocket ds = new DatagramSocket();
//2 发送什么
byte[] s="helloabcdef".getBytes();
//3 发送到哪,发送到本机
InetAddress clientAddress=InetAddress.getLocalHost();
//4 搭建一个outDataPacket相当于一个邮包
//把发送的内容,发送的地址,发送的端口,写在邮包上
DatagramPacket op = null;
op=new DatagramPacket(s, s.length,clientAddress, 9999);
//5 通过一个DatagramPacket将数据发送到客户端,
//客户端的地址由DatagramPacket指定,即写在邮包上
ds.send(op);
System.out.println("数据已经成功发送");
}
}

public class ReceiveSideTest {
/* 接收方*/
public static void main(String[] args) throws IOException {
//1 DatagramSocket相当于建立一个服务器 在9999监听
DatagramSocket ds = new DatagramSocket(9999);
//2 DatagramPacket是用来接收发送的数据的 要有容器接收
byte[] msg = new byte[100];
DatagramPacket ip = new DatagramPacket(msg, msg.length);
//3调用receive方法接收数据到DatagramPacket 中
//数据又由DatagramPacket放入msg
ds.receive(ip);
String msgs = new String(msg);
System.out.println(msgs);
//4通过DatagramPacket得到地址和端口 把发送者打印出来
InetAddress clientAddress = ip.getAddress();
int clientPort = ip.getPort();
System.out.println("发送者:"+clientAddress);
System.out.println("发送端口:"+clientPort);
}
}

② java编程,获取局域网内服务器端的ip地址

socket.connect(new InetSocketAddress(ip, port), timeout)

看有没有抛异常 没异常就是已经连接上了

想获取服务器名称 可以用ARP协议 或者测试连接的时候服务器回应一个名称

package;

importjava.io.IOException;
importjava.net.InetSocketAddress;
importjava.net.Socket;

publicclassClient{

publicstaticvoidmain(String[]args){
/**
*端口号
*/
intport=10000;
/**
*连接延时
*/
inttimeout=300;
System.out.println("ScannerStart...");
Socketsocket;
/**
*扫描
*/
for(inti=1,k=254;i<k;i++){
if((socket=isOnLine("192.168.1."+i,port,timeout))!=null){
System.out.println("Server:"
+socket.getInetAddress().getHostAddress()
+":"+socket.getPort()+"IsWaiting...");
}

/**
*关闭连接
*/
if(socket!=null&&!socket.isClosed()){
try{
socket.close();
}catch(IOExceptione){
socket=null;
}
}
}
System.out.println("Scannerend...");
}

/**
*测试连接服务器,返回连接成功后的Socket
*
*@paramip
*服务器Ip
*@paramport
*服务器端口号
*@paramtimeout
*连接延时
*@return返回连接成功后的Socket
*/
privatestaticSocketisOnLine(Stringip,intport,inttimeout){
Socketsocket=newSocket();
try{
socket.connect(newInetSocketAddress(ip,port),timeout);
}catch(IOExceptione){
returnnull;
}
returnsocket;
}

}

③ 服务器配置Java环境教程

linux下的方法你可以参考下,具体不懂网络去:

使用java -version 查看是否安装了jdk以及jdk的版本号
1.安装jdk
下载jdk-7-linux-i586.tar.gz
使用tar -xzvf jdk-7-linux-i586.tar.gz
然后复制到要放的位置,cp命令

修改环境变量:
打开 etc/profile 使用vi在最后添加:

##### jdk #####
JAVA_HOME=/usr/myhome/jdk1.7/jdk1.7.0_79 jdk所在目录(例如:/usr/share/jdk1.5.0_05)
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
配置文件生效: . /etc/profile 注意点和/有一个空格。

④ java服务器接收客户端请求怎样实现的

服务器端代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
* Socket通讯服务器端
* @author 米强
*
*/
public class ServerMain {

public ServerMain() {
try {
// 构造服务器ServerSocket对象,参数为服务器端开放的端口号
ServerSocket ss = new ServerSocket(30102);
System.out.println("服务器准备就绪!");
// 死循环可以使服务器持续处于接收客户端状态
while(true){
// 该方法使程序阻塞,等待客户端的链接,当监听到客户端的链接,创建一个Socket对象与客户端单独会话
Socket s = ss.accept();
// 为了不影响服务器监听其它客户端,这里开启了一个线程,由线程处理与这个客户端的会话
new ServerThread(s).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new ServerMain();
}

}

/**
* 服务器端与客户端会话的线程
*/
class ServerThread extends Thread {
private Socket s = null;
private BufferedReader read = null;
private PrintStream print = null;

public ServerThread(Socket s) {
this.s = s;
try {
// 从Socket中获取输入流和输出流,由于我们只做一个简单的字符串通讯,所以采用BufferedRead和PrintStream来封装输入、输出流
read = new BufferedReader(new InputStreamReader(s.getInputStream()));
print = new PrintStream(s.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 线程的运行run方法
*/
public void run() {
try {
String message = null;
// 这里循环可以使服务器持续的接收客户端信息。read.readLine()通过输入流读取一段字符串,赋值给message变量,如果message字符串不为“exit”则循环,否则结束循环
while (!(message = read.readLine()).equals("exit")){
// 将字符串前面添加“返回:”,再发回客户端
print.println("返回:" + message);
}
} catch (IOException e) {
} finally {
// 在 finally 代码块中无论如何都会执行下面代码:
try {
// 如果没有关闭Socket
if(!s.isClosed()){
// 关闭Socket链接
s.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}

}

客户端代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

/**
* Socket通讯客户端
* @author 米强
*
*/
public class ClientMain {

public ClientMain() {
try {
// 构造与服务器通讯的Socket对象,参数为服务器IP地址(String)和端口号(int),端口号需要和服务器端开放的端口号对应
Socket s = new Socket("192.168.1.100", 30102);
// 启动一个线程与服务器通讯,并把链接服务器的Socket对象传递过去
new LinkThread(s).start();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new ClientMain();
}

}

/**
* 与服务器通讯的线程
*/
class LinkThread extends Thread {
private Socket s = null;
// 输出流
private PrintStream out = null;
// 缓冲输入流
private BufferedReader in = null;
// 录入文字的Scanner对象
private Scanner scanner = null;

public LinkThread(Socket s) {
// 将Socket对象实例保存在全局变量中,因为run方法中我们还要用它断开链接
this.s = s;
try {
// 从Socket中获取输入流和输出流,由于我们只做一个简单的字符串通讯,所以采用BufferedRead和PrintStream来封装输入、输出流
out = new PrintStream(s.getOutputStream());
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 线程的运行run方法
*/
public void run() {
// 构造Scanner对象
scanner = new Scanner(System.in);
System.out.println("提示:如果要结束本次会话,请输入“exit”指令!");
try {
// 死循环可以使客户端不断的向服务器发送信息,不用担心循环无法结束,后面的return语句可以结束整个线程。
while(true){
// 提示用户输入文字
System.out.print("请输入:");
// 将用户输入的字符串保存在message变量中
String message = scanner.nextLine();
// 通过输出流发送字符串
out.println(message);
// 清空缓冲,强制输出
out.flush();
// 获取服务器返回的字符串
String str = in.readLine();
// 如果返回的字符串存在
if(str != null){
// 显示在控制台
System.out.println(str);
}else{
// 提示会话结束,并结束线程
System.out.println("本次会话结束!");
return;
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 在 finally 代码块中无论如何都会执行下面代码:
try {
// 如果没有关闭Socket
if(!s.isClosed()){
// 关闭Socket链接
s.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}

}

⑤ java有一大批接口地址如何封装

最直接的方法是接口地址放在配置文件中,调用端读取配置文件得到接口地址

⑥ 用java 写一个登陆的功能,输入账户和密码,发送给服务器端,这个消息怎么封装

都不知道你的服务器是web服务器 还是socket通讯服务器
如果是web服务器 那就如婉月工作室所说的 那么发送
如果是socket 服务器 那就在服务器上建立socket服务端
在登录机上建立socket 客户端
自定义通讯协议 比如 发送 login#admin#000111
服务端就可以识别为 是登录指令 用户名 admin 密码 000111
服务器访问数据库 得到结果 返回 login#1 或者 login#0 那客户端就知道验证是否成功了
这是最简单的规约

⑦ java里面如何获取服务器的ip地址,帮帮忙

获取本机ip地址
InetAddress addr = InetAddress.getLocalHost();
ip=addr.getHostAddress().toString;

⑧ java服务器端“/“文件路径如何书写

在java中路径都这么写:\\ , 这个就是路径分隔符,以后就不用“/”了吧
不管是实在windows还是在linux中,你都用“\\”作为路径分隔符就对了
File.separator()这个方法是没什么问题,但是,你如果传入字符串后,
使用File.separator来split,可能会出错的哦,你在所有的地方,都用“\\”,
肯定是不会错的啦。

至于你说的json中也是,在java中就是用\\,这与json无关,而是转义导致的

⑨ java获取服务器文件,怎样用url返回

下面提供二种方法会使用java发送url请求,并获取服务器返回的值

第一种方法:
代码如下:

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;

(StringurlStr,Stringparam1,Stringparam2)throwsException{
StringtempStr=null;
HttpClienthttpclient=newDefaultHttpClient();
Propertiesproperties=newProperties();
HttpEntityentity=null;
StringxmlContent="";
try
{

//设置超时时间
httpclient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,20000);
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,20000);

//封装需要传递的参数
List<NameValuePair>nvps=newArrayList<NameValuePair>();
nvps.add(newBasicNameValuePair("mainMemoCode",strmainMemoCode));
nvps.add(newBasicNameValuePair("recordPassWord",strrecordPassWord));
//客户端的请求方法类型
HttpPosthttpPost=newHttpPost(urlStr);
httpPost.setEntity(newUrlEncodedFormEntity(nvps,"GBK"));
HttpResponseresponse=httpclient.execute(httpPost);

//获取服务器返回Http的Content-Type的值
tempStr=response.getHeaders("Content-Type")[0].getValue().toString();

//获取服务器返回页面的值
entity=response.getEntity();
xmlContent=EntityUtils.toString(entity);
Stringstrmessage=null;
System.out.println(xmlContent);
System.out.println(response.getHeaders("Content-Type")[0].getValue().toString());
httpPost.abort();

}
catch(SocketTimeoutExceptione)
{
}
catch(Exceptionex)
{
ex.printStackTrace();
}
finally{
httpclient.getConnectionManager().shutdown();
}
第二种方法:

代码如下:


(StringurlStr,Stringparam1,Stringparam2)throwsException{

HttpURLConnectionurl_con=null;
try{
URLurl=newURL(urlStr);
StringBufferbankXmlBuffer=newStringBuffer();
//创建URL连接,提交到数据,获取返回结果
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("User-Agent","directclient");

PrintWriterout=newPrintWriter(newOutputStreamWriter(connection.getOutputStream(),"GBK"));
out.println(param);
out.close();
BufferedReaderin=newBufferedReader(newInputStreamReader(connection
.getInputStream(),"GBK"));

StringinputLine;

while((inputLine=in.readLine())!=null){
bankXmlBuffer.append(inputLine);
}
in.close();
tempStr=bankXmlBuffer.toString();
}
catch(Exceptione)
{
System.out.println("发送GET请求出现异常!"+e);
e.printStackTrace();

}finally{
if(url_con!=null)
url_con.disconnect();
}

returntmpeStr;
}

总结:多练习代码,熟练之后才能更快速的去了解代码的学习的方法。多去获取一些思维方面的书籍可以看看。

⑩ linux服务器怎么搭建java环境

因为阿里云服务器事先就安装好了ssh,我们可以用xshell连上去,我把下载好的tar.gz上传到/opt/目录,用命令 tar -zxvf jdk-8u74-linux-x64.tar.gz
剩下的就是配置环境变量了。
然后我就在命令行输入 #java -version 发现并没有出现java的版本信息(有些好像不用安装好没配置环境变量就能出来,我这里好像不行)
于是我开始配置环境变量vi /etc/profile 加入如下配置

JAVA_HOME=/opt/jdk1.8.0_74
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

然后是配置文件立即生效:[root@localhost ~]# source /etc/profile //使修改立即生效
再输入java -version就有你安装的版本信息了

热点内容
gg脚本搜索闪退 发布:2025-07-08 05:37:48 浏览:580
形色安卓哪里下载 发布:2025-07-08 05:33:21 浏览:726
ods数据库 发布:2025-07-08 05:32:06 浏览:113
骐达酷动版与智行版哪个配置高 发布:2025-07-08 05:24:37 浏览:339
地址访问监控 发布:2025-07-08 05:13:22 浏览:541
python字符串分隔 发布:2025-07-08 04:53:20 浏览:664
楼道口门禁卡密码一般是多少 发布:2025-07-08 04:52:32 浏览:480
安卓手机根目录怎么删除 发布:2025-07-08 04:46:51 浏览:733
p30怎么刷回安卓 发布:2025-07-08 04:45:27 浏览:479
林业大数据库 发布:2025-07-08 04:40:37 浏览:647