javasocket编程(javasocket通信) 淩亂°似流年 2023-09-25 08:43 80阅读 0赞 ## Java网络编程-JavaSocket编程是什么呢? ## Socket传输模式 Sockets有两种主要的操作方式:面向连接的和无连接的。面向连接的sockets操作就像一部电话,他们必须建立一个连接和一人呼叫。所有的事情在到达时的顺序与它们出发时的顺序时一样。 无连接的sockets操作就像是一个邮件投递,没有什么保证,多个邮件可能在到达时的顺序与出发时的顺序不一样。 ![javasocket编程][javasocket] ## Javasocket入门编程是什么? ## java原文件: import java。net。\*; import java。io。\*; public class ServerApp \{ public static void main(String args\[\]) \{ try \{ boolean flag=true; Socket clientSocket=null; String inputLine; int c; ServerSocket sSocket=new ServerSocket(8018); System。 ## java中的socket编程是作什么的 ## Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序。 方法/步骤 Java中的socket编程 下面的部分将通过一些示例讲解一下如何使用socket编写客户端和服务器端的程序。 注意:在接下来的示例中,我将使用基于TCP/IP协议的socket编程,因为这个协议远远比UDP/IP使用的要广泛。并且所有的socket相关的类都位于java.net包下,所以在我们进行socket编程时需要引入这个包。 写入数据 接下来就是写入请求数据,我们从客户端的socket对象中得到OutputStream对象,然后写入数据后。很类似文件IO的处理代码。 打开服务器端的socket 读取数据 通过上面得到的socket对象获取InputStream对象,然后安装文件IO一样读取数据即可。这里我们将内容打印出来。 使用socket实现一个回声服务器,就是服务器会将客户端发送过来的数据传回给客户端。B/S方向的学Socket干什么,没有必要。 如果你需要自己做一个服务器,比如Tomcat,那么学习一下好了。 B/S Java方面,就去学 J2EE相关技术,JSP ,Servlet, EJB, Hibernate(iBatis),Struts/JSF,Web Services,XML,等等。 不要花精力到Socket上。socket是网络通讯编程常用的,建议掌握。没事了看看也好 再看看HTTP协议 自己做个简单的web服务器玩玩 对以后提高会有帮助相对于C++而言,JAVA在网络方面的优势还是还行的,建议学下。 ![javasocket编程][javasocket 1] ## Java编程,利用Socket和ServerSocket编程。 ## 哎。。。加分都没有。。。 算了吧。。 服务器端: import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; class wangluo1 extends JFrame implements ActionListener \{ JFrame frame = new JFrame(); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); JTextArea text1 = new JTextArea(30, 30); //JTextArea text2 = new JTextArea(3, 25); JButton sent = new JButton("转换"); InputStream in; OutputStream out; Socket client; ServerSocket server; String str; String newStr = ""; public wangluo1() \{ add("South", panel2); add(panel1); panel1.add(text1); panel2.setLayout(new FlowLayout()); //panel2.add(text2); panel2.add(sent); sent.addActionListener(this); addWindowListener(new WindowAdapter() \{ public void windowClosing(WindowEvent e) \{ //try \{ //in.close(); //out.close(); //\} catch (IOException e1) \{ TODO Auto-generated catch block //e1.printStackTrace(); //\} System.exit(0); \} \}); pack(); setVisible(true); this.setTitle("服务器:"); try \{ server = new ServerSocket(10000); client = server.accept(); in = client.getInputStream(); out = client.getOutputStream(); text1.append("已连接"+"\\n"); \} catch (IOException ioe) \{ while (true) \{ try \{ byte\[\] buf = new byte\[256\]; in.read(buf); str = new String(buf); text1.append("客户端说:" + "\\n" +str.trim()); text1.append("\\n"); \} catch (IOException e) \{ \} public static void main(String\[\] args) \{ new wangluo1(); public void actionPerformed(ActionEvent e) \{ try \{ for(int i=str.length()-1;i>=0;i--)\{ newStr = newStr + str.charAt(i); \} byte\[\] buf = newStr.getBytes(); //text2.setText(""); out.write(buf); out.flush(); //text1.append("服务器说:"+"\\n" + s + "\\n"); \} catch (IOException ie) \{ 客户端: import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; public class wangluo2 extends JFrame implements ActionListener \{ JFrame frame = new JFrame(); Socket client; OutputStream os; InputStream is; String s; JTextArea text3 = new JTextArea(30, 30); JTextArea text4 = new JTextArea(3, 25); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); JButton clientsent = new JButton("发送"); public wangluo2() \{ add("South", panel2); add(panel1); panel1.add(text3); panel2.setLayout(new FlowLayout()); panel2.add(text4); panel2.add(clientsent); pack(); setVisible(true); this.setLocation(500, 0); this.setTitle("客户端"); addWindowListener(new WindowAdapter() \{ public void windowClosing(WindowEvent e) \{ //try \{ //is.close(); //os.close(); //\} catch (IOException e1) \{ TODO Auto-generated catch block //e1.printStackTrace(); //\} System.exit(0); \} \}); clientsent.addActionListener(this); try \{ client = new Socket("127.0.0.1", 10000); text3.append("已连接"+"\\n"); is = client.getInputStream(); os = client.getOutputStream(); \} catch (IOException ioe) \{ while (true) \{ try \{ byte\[\] buf = new byte\[256\]; is.read(buf); String str = new String(buf); text3.append("服务器说:" + "\\n" + str.trim()); text3.append("\\n"); \} catch (IOException e) \{ \} public static void main(String\[\] args) \{ new wangluo2(); public void actionPerformed(ActionEvent e) \{ try \{ String str = text4.getText(); byte\[\] buf = str.getBytes(); text4.setText(""); os.write(buf); os.flush(); text3.append("客户端说:"+"\\n" + str + "\\n"); \} catch (Exception ee) \{ \}你这个不就是TCP的例子吗?我给你找找。 //: c15:JabberServer.java // Very simple server that just // echoes whatever the client sends. // \{RunByHand\} import java.io.\*; import java.net.\*; public class JabberServer \{ // Choose a port outside of the range 1-1024: public static final int PORT = 8080; public static void main(String\[\] args) throws IOException \{ ServerSocket s = new ServerSocket(PORT); System.out.println("Started: " + s); try \{ // Blocks until a connection occurs: Socket socket = s.accept(); try \{ System.out.println( "Connection accepted: "+ socket); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream())); // Output is automatically flushed // by PrintWriter: PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getOutputStream())),true); while (true) \{ String str = in.readLine(); if (str.equals("END")) break; System.out.println("Echoing: " + str); out.println(str); \} // Always close the two sockets... \} finally \{ System.out.println("closing..."); socket.close(); \} \} finally \{ s.close(); \} \} \} ///:~ //: c15:JabberClient.java // Very simple client that just sends // lines to the server and reads lines // that the server sends. // \{RunByHand\} import java.net.\*; import java.io.\*; public class JabberClient \{ public static void main(String\[\] args) throws IOException \{ // Passing null to getByName() produces the // special "Local Loopback" IP address, for // testing on one machine w/o a network: InetAddress addr = InetAddress.getByName(null); // Alternatively, you can use // the address or name: // InetAddress addr = //InetAddress.getByName("127.0.0.1"); // InetAddress addr = //InetAddress.getByName("localhost"); System.out.println("addr = " + addr); Socket socket = new Socket(addr, JabberServer.PORT); // Guard everything in a try-finally to make // sure that the socket is closed: try \{ System.out.println("socket = " + socket); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream())); // Output is automatically flushed // by PrintWriter: PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getOutputStream())),true); for(int i = 0; i < 10; i ++) \{ out.println("howdy " + i); String str = in.readLine(); System.out.println(str); \} out.println("END"); \} finally \{ System.out.println("closing..."); socket.close(); \} \} ///:~ [javasocket]: https://img2.baidu.com/it/u=570130319,3344582570&fm=26&fmt=auto [javasocket 1]: https://img2.baidu.com/it/u=3975609262,4239680866&fm=26&fmt=auto
相关 JavaSocket编程常见问题及解决方案 在Java Socket编程中,可能会遇到一些常见的问题。这里将列出这些问题及其可能的解决方案: 1. **连接问题**: - 服务器未启动:确保服务器已经运行。 深碍√TFBOYSˉ_/ 2024年09月16日 06:04/ 0 赞/ 11 阅读
相关 网络编程疑惑:JavaSocket通信异常处理案例? 在Java Socket通信中,由于网络环境变化、服务器故障或客户端代码错误等,都可能导致通信异常。以下是一个简单的异常处理案例: ```java import java.i 朱雀/ 2024年09月15日 22:30/ 0 赞/ 8 阅读
相关 网络编程:JavaSocket编程与异常处理 在Java中,Socket编程是网络通信的基础。下面我们将详细讲解Java Socket编程以及如何进行异常处理。 1. **Socket编程基础**** - 创建S 谁践踏了优雅/ 2024年09月12日 09:12/ 0 赞/ 16 阅读
相关 javasocket编程(javasocket通信) Java网络编程-JavaSocket编程是什么呢? Socket传输模式 Sockets有两种主要的操作方式:面向连接的和无连接的。面向连接的sockets操作就像一 淩亂°似流年/ 2023年09月25日 08:43/ 0 赞/ 81 阅读
相关 Linux编程---进程通信 Linux的通信方式主要有分类有下面几种: \-匿名管道和FIFO有名管道 \-消息队列,信号量和共享存储 \-套接字 对于套接字的进程通信,我就留在套接字的文章中再写 小灰灰/ 2022年08月23日 15:50/ 0 赞/ 133 阅读
相关 Socket编程——Socket通信 Socket通信 TCP协议是面向连接、可靠的、有序的、以字节流的方式发送数据 基于TCP协议实现网络通信的类 客户端的Socket类 服务器端的ServerSoc 墨蓝/ 2022年07月12日 05:30/ 0 赞/ 313 阅读
相关 JavaSocket编程—细说Java Socket中的setSoLinger方法 在Java Socket中,当我们调用Socket的close方法时,默认的行为是当底层网卡所有数据都发送完毕后,关闭连接 通过setSoLinger方法,我们可以修改clo 桃扇骨/ 2022年05月12日 04:14/ 0 赞/ 191 阅读
相关 JavaSocket服务器转发数据的模型。 import java.io.DataInputStream; import java.io.DataOutputStream; import java 雨点打透心脏的1/2处/ 2022年04月18日 06:18/ 0 赞/ 208 阅读
相关 JavaSocket编程之Netty框架线程模型 .Netty概述 Netty是一个由JBoss提供的高效的Java NIO client-server(客户端-服务器)开发框架,使用Netty可以快速开发网络... 朱雀/ 2020年10月31日 17:52/ 0 赞/ 811 阅读
还没有评论,来说两句吧...