java socket网络编程

作者&投稿:汗冠 (若有异议请与网页底部的电邮联系)
java Socket网络编程~

//向输出流中写入数据
out.write("你好,服务端".getBytes());
out.write("我是客户端".getBytes());
out.flush();

如果你需要直接通讯,那么这是网管的事。不通的网络是没有办法的。
不过如果大家都接了互联网,那么可以通过中间服务器转发的方式进行通讯。服务器C在公网。那么客户端a连接C,客户端b也连接C,就可以实现转发。现在大规模的通讯基本都是这个方式。

//==============Server.java=================//
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
public static void main(String[] args) throws IOException {
ServerSocket s = new ServerSocket(12345);
System.out.println("服务器就绪,请启动客户端.");
Socket so = s.accept();
byte[] buff = new byte[1024];
int read = so.getInputStream().read(buff);
String[] abc=new String(buff,0,read).split("\\D+");
int a = Integer.parseInt(abc[0]);
int b = Integer.parseInt(abc[1]);
int c = Integer.parseInt(abc[2]);
if(!cbt(a,b,c))
so.getOutputStream().write("输入的数据无法组成三角形.".getBytes());
else
so.getOutputStream().write(getArea(a,b,c).getBytes());
so.getOutputStream().flush();
so.close();
s.close();
}

private static String getArea(int a, int b, int c) {
float s = (a+b+c)/2f;
return "面积: "+Math.sqrt(s*(s-a)*(s-b)*(s-c));
}

private static boolean cbt(int a, int b, int c) {
return a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b;
}
}

//=================Client.java======================//
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
System.out.println("输入三角形的三边并用逗号隔开,如: (3,4,5) ");
byte[] buff=new byte[64];
int r = System.in.read(buff);
String ipaddr = "localhost";//根据情况改变,在本机调试就不改了
Socket so = new Socket(ipaddr,12345);
so.getOutputStream().write(new String(buff,0,r).getBytes());
r = so.getInputStream().read(buff);
so.close();
String rs = new String(buff,0,r);
System.out.println(rs);
}

}

//先启动Server,再启动Client

设置超时就可以了。然后在cacth能捕捉到

tcp
协议是面向连接的、在这里
设置超时时间就好了

简单!但8高兴写!


梁山县19816411504: java socket网络编程
郅晨威赛: //==============Server.java=================// import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) throws IOException { ServerSocket s = new ...

梁山县19816411504: java~socket编程~~
郅晨威赛: //建立通道 Socket sk = new Socket("指定IP", 端口号); //建立输出流 DataOutPutStream dos = new DataOutputStream(sk.getOutputStream()); //发送数据 dos.writeUTF("发数据过来!"); //建立输入流 DataInputStream dis = new ...

梁山县19816411504: java中的socket编程是作什么的 -
郅晨威赛: Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程...

梁山县19816411504: 如何创建一个socket并进行通信 -
郅晨威赛: Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上的数据的传递.在java中,有专门的socket类来处理用户的请求和响应.利用SOCKET类的方法,就可以实现两台计算...

梁山县19816411504: Java网络编程 - JavaSocket编程内容是什么呢?
郅晨威赛: 重复和并发服务器 这个应用程序被当作一个重复的服务器.因为它只有在处理完一个... Java数据报类不像面向连接的类,数据报的客户端和服务器端的类在表面上是一样的...

梁山县19816411504: java中socket是网络编程,jsp也是网络编程 (1)他们有什么联系和区别? (2)jsp底层的实现使用socket吗 -
郅晨威赛: 1.socket是网络数据传输层主要技术手段,要传递网络信息的大都是靠socket实现的. 2.jsp在是这么传输数据的:先转换成servlet,再编译为.class字节码servlet 底层是 socket,jsp所转化的servlet是HttpServlet,它是对http 协议的封装 .你可以去web服务器比如tomcat下的work文件夹看看,里面都是jsp转换的servelt以及他们的字节码.class文件. 总的来说呢,底层到高层这么来的: socket->HttpServlet->JSP所以你非要说jsp底层是有socket实现的也没错.

梁山县19816411504: java编程中,Socket通信是怎么实现的? -
郅晨威赛: java编程对于Socket之间的通信过程如下:服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容.Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的...

梁山县19816411504: java socket编程 用在哪里 为什么要用? -
郅晨威赛: 进程通信用,建议百度百科 简单的Client/Server程序1.客户端程序 import java.io.*; import java.net.*; public class TalkClient { public static void main(String args[]) { try { Socket socket = new Socket("127.0.0.1", 4700); //向本机的4700端口发出客...

梁山县19816411504: java Socket网络远程连接 -
郅晨威赛: 最简单的 在服务器建立一个 ServerSocket 监听连接过来的socket 这里你需要了解java的socket编程,监听到socket连接之后,你要查询数据库 你需要了解JDBC 技术.以上是服务器端的技术,前提是你有java基础.手机以android为例子,联网需要java的socket编程技术(服务器端已经说过了) 再者就是androd的一些基本知识.

梁山县19816411504: java 编程 网络游戏 socket -
郅晨威赛: UDP只是Socket的一种协议,两者都可以用到,但是ServerSocket是必须用到的,对你的作业,如果只是两人对战,必然一人是ServerSocket(主服务),另外一个是Socket(客户端);如果多人的话,还需要建立单独的服务器,多个客户端之间不直接通信,通过服务器来通信.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网