java socket网络编程
作者&投稿:汗冠 (若有异议请与网页底部的电邮联系)
//向输出流中写入数据
out.write("你好,服务端".getBytes());
out.write("我是客户端".getBytes());
out.flush();
如果你需要直接通讯,那么这是网管的事。不通的网络是没有办法的。
不过如果大家都接了互联网,那么可以通过中间服务器转发的方式进行通讯。服务器C在公网。那么客户端a连接C,客户端b也连接C,就可以实现转发。现在大规模的通讯基本都是这个方式。
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高兴写!
郅晨威赛: //==============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(客户端);如果多人的话,还需要建立单独的服务器,多个客户端之间不直接通信,通过服务器来通信.