Java基础9
Java基础9 1
文件结构 1
Java网络编程_netTest1Client/com.test1/MyClient1.java 1
Java网络编程_netTest1Client/com.test1/MyServer1.java 3
Java网络编程_netTest2Client/com.test1/MyClient2.java 4
Java网络编程_netTest2Client/com.test1/ MyServer2.java 5
Java网络编程_netTest3Client/com.test1/MyClient3.java 7
Java网络编程_netTest3Client/com.test1/ MyServer3.java 9
Java网络编程_netTestClient/com.test1/MyServer.java 11
Java网络编程_netTestClient/com.common/User.java 12
Java网络编程_netTestClient/com.test1/MyClient.java 12
Java网络编程_netTestClient/com.common/User.java 13
文件结构
Java基础9 1
文件结构 1
Java网络编程_netTest1Client/com.test1/MyClient1.java 1
Java网络编程_netTest1Client/com.test1/MyServer1.java 3
Java网络编程_netTest2Client/com.test1/MyClient2.java 4
Java网络编程_netTest2Client/com.test1/ MyServer2.java 5
Java网络编程_netTest3Client/com.test1/MyClient3.java 7
Java网络编程_netTest3Client/com.test1/ MyServer3.java 9
Java网络编程_netTestClient/com.test1/MyServer.java 11
Java网络编程_netTestClient/com.common/User.java 12
Java网络编程_netTestClient/com.test1/MyClient.java 12
Java网络编程_netTestClient/com.common/User.java 13
文件结构
Java网络编程_netTest1Client/com.test1/MyClient1.java /** * 这是一个客户端程序,可以连接服务器端 */ package com.test1; import java.io.*; import java.net.*; public class MyClient1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub MyClient1 mc1=new MyClient1(); } public MyClient1() { try { //Socket()就是去连接某个服务器端,127.0.0.1表示服务器的IP //9999就是端口号 Socket s=new Socket("127.0.0.1",9999); //如果s连接成功,就可以发送数据给服务器 //通过pw,向s写数据,true表示即时刷新 PrintWriter pw=new PrintWriter(s.getOutputStream(),true); pw.println("你好吗?我是客户端"); //客户端接收 InputStreamReader isr=new InputStreamReader(s.getInputStream()); BufferedReader br=new BufferedReader(isr); String response=br.readLine(); System.out.println("我是客户端!\n我收到了服务器回复的信息:"+response); } catch (IOException e) { e.printStackTrace(); } } } Java网络编程_netTest1Client/com.test1/MyServer1.java /** * 这是第一个服务器端程序,让它在9999端口监听 * 可以接收从客户端发来的信息 */ package com.test1; import java.io.*; import java.net.*; public class MyServer1 { public static void main(String []args) { MyServer1 ms1=new MyServer1(); } public MyServer1() { try { //在9999号端口监听 ServerSocket ss=new ServerSocket(9999); System.out.println("我是服务器,在9999端口监听..."); //等待某个客户端来连接,该函数会返回一个Scoket连接 Socket s=ss.accept(); System.out.println("有客户端连接"); //要读取取s中传递的数据 InputStreamReader isr=new InputStreamReader(s.getInputStream()); BufferedReader br=new BufferedReader(isr); String info=br.readLine(); //读 System.out.println("服务器接收到:"+info); //服务器回复一句话 PrintWriter pw=new PrintWriter(s.getOutputStream(),true);//true表示即时刷新 pw.println("我是服务器,客户端你也好!"); } catch (IOException e) { e.printStackTrace(); } } } Java网络编程_netTest2Client/com.test1/MyClient2.java /** * 半双工通信 * 功能:客户端 */ package com.test1; import java.net.*; import java.io.*; public class MyClient2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub MyClient2 mc2=new MyClient2(); } public MyClient2() { try { //连接服务器端 Socket s=new Socket("127.0.0.1",9999); //向s写入数据 PrintWriter pw=new PrintWriter(s.getOutputStream(),true); //先接收从控制台输入的信息 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //接收从服务器端发送过来的信息 InputStreamReader isr2=new InputStreamReader(s.getInputStream()); BufferedReader br2=new BufferedReader(isr2); while(true) { System.out.println("请输入你想对服务器说的话:"); //客户端先从控制台接收 String info=br.readLine(); //然后把从控制台输入的信息发送给服务器 pw.println(info); if(info.equals("bye")) { System.out.println("对话结束"); s.close(); break; } //接收从服务器发来的话 String res=br2.readLine(); System.out.println("服务器说:"+res); } } catch (IOException e) { e.printStackTrace(); } } } Java网络编程_netTest2Client/com.test1/ MyServer2.java /** * 半双工通信 * 功能:一个服务器端,在9999端口上监听 */ package com.test1; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.*; import java.io.*; public class MyServer2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub MyServer2 ms2=new MyServer2(); } public MyServer2() { try { //在9999端口监听 ServerSocket ss=new ServerSocket(9999); System.out.println("服务器在9999监听..."); //等待连接 Socket s=ss.accept(); //向s中写信息 PrintWriter pw=new PrintWriter(s.getOutputStream(),true); //先接收客户端发来的信息(Socket上的) InputStreamReader isr=new InputStreamReader(s.getInputStream()); BufferedReader br=new BufferedReader(isr); //接收从控制台输入的信息 InputStreamReader isr2=new InputStreamReader(System.in); BufferedReader br2=new BufferedReader(isr2); while(true) { String infoFromClient=br.readLine(); System.out.println("客户端发来:"+infoFromClient); if(infoFromClient.equals("bye")) { System.out.println("对话结束!"); s.close(); break; } //接收从控制台输入的信息 System.out.println("输入你希望对客户端说的话:"); String response=br2.readLine(); //把从控制台接受的信息送给客户端 pw.println(response); } } catch (IOException e) { e.printStackTrace(); } } } Java网络编程_netTest3Client/com.test1/MyClient3.java /** * 全双工通信 * 客户 */ package com.test1; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.net.*; public class MyClient3 extends JFrame implements ActionListener{ JTextArea jta=null; JTextField jtf=null; JButton jb=null; JScrollPane jsp=null; JPanel jp1=null; //把信息发给客户端的对象 PrintWriter pw=null; public static void main(String[] args) { // TODO Auto-generated method stub MyClient3 ms=new MyClient3(); } public MyClient3() { jta=new JTextArea(); jsp=new JScrollPane(jta); jtf=new JTextField(10); jb=new JButton("发送"); jb.addActionListener(this); jp1=new JPanel(); jp1.add(jtf); jp1.add(jb); this.add(jsp,"Center"); this.add(jp1,"South"); this.setSize(300,200); this.setTitle("QQ简易聊天-客户端"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); try { Socket s=new Socket("127.0.0.1",9988); InputStreamReader isr=new InputStreamReader(s.getInputStream()); BufferedReader br=new BufferedReader(isr); pw=new PrintWriter(s.getOutputStream(),true); while(true) { //不停的读取从服务器发来的信息 String info=br.readLine(); jta.append("服务器端对客户端说: "+info+"\r\n"); } } catch (Exception e) { e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { //如果用户按下发送信息的按钮 if(e.getSource()==jb) { //把服务器在jtf写的内容发送给客户端 String info=jtf.getText(); //把客户端显示的信息加到jta jta.append("客户端对服务器说: "+info+"\r\n"); pw.println(info); //清空jtf中的内容 jtf.setText(""); } } } Java网络编程_netTest3Client/com.test1/ MyServer3.java /** * 全双工通信 * 服务器端 */ package com.test1; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.net.*; public class MyServer3 extends JFrame implements ActionListener{ JTextArea jta=null; JTextField jtf=null; JButton jb=null; JScrollPane jsp=null; JPanel jp1=null; //把信息发给客户端的对象 PrintWriter pw=null; public static void main(String[] args) { // TODO Auto-generated method stub MyServer3 ms=new MyServer3(); } public MyServer3() { jta=new JTextArea(); jsp=new JScrollPane(jta); jtf=new JTextField(10); jb=new JButton("发送"); jb.addActionListener(this); jp1=new JPanel(); jp1.add(jtf); jp1.add(jb); this.add(jsp,"Center"); this.add(jp1,"South"); this.setSize(300,200); this.setTitle("QQ简易聊天-服务器端"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); try { //服务器监听 ServerSocket ss=new ServerSocket(9988); //等待客户端连接 Socket s=ss.accept(); //System.out.println("服务器端在9988监听!"); InputStreamReader isr=new InputStreamReader(s.getInputStream()); BufferedReader br=new BufferedReader(isr); pw=new PrintWriter(s.getOutputStream(),true); //读取从客户端发来的信息 while(true) { //读取从客户端发来的信息 String info=br.readLine(); //把信息显示加到文本域中(以追加的形式) jta.append("客户端对服务器说: "+info+"\r\n"); } } catch (IOException e) { e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { //如果用户按下发送信息的按钮 if(e.getSource()==jb) { //把服务器在jtf写的内容发送给客户端 String info=jtf.getText(); jta.append("服务器端对客户端说: "+info+"\r\n"); pw.println(info); //清空jtf中的内容 jtf.setText(""); } } } Java网络编程_netTestClient/com.test1/MyServer.java /** * 功能:网络这间利用 对象流 */ package com.test1; import java.net.*; import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.common.*; public class MyServer { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub MyServer ms=new MyServer(); } public MyServer() { try { ServerSocket ss=new ServerSocket(3456); System.out.println("服务器在3456端口监听..."); Socket s=ss.accept(); //以对象流方式读取(假设客户端发送的是User的一个对象) ObjectInputStream ois=new ObjectInputStream(s.getInputStream()); User u=(User)ois.readObject();//读取对象 //输出 System.out.println("从客户端接收到:"+u.getName()+" "+u.getPass()); s.close(); } catch (Exception e) { e.printStackTrace(); } } } Java网络编程_netTestClient/com.common/User.java package com.common; public class User implements java.io.Serializable{ //将这个类实现序列化 private String name; private String pass; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } } Java网络编程_netTestClient/com.test1/MyClient.java package com.test1; import java.io.*; import java.net.*; import com.common.User; import com.test1.*; public class MyClient { /** * @param args */ public static void main(String[] args) { // MyClient mc=new MyClient(); } public MyClient() { try { Socket s=new Socket("127.0.0.1",3456); //通过ObjectOutputStream给服务器传送对象 ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream()); User u=new User(); u.setName("维唯为为"); u.setPass("123456"); oos.writeObject(u); //写入对象流 //如果希望一个对象在网络上传输,则需要把这个对象序列化 //System.out.println("ok"); s.close(); } catch (Exception e) { e.printStackTrace(); } } } Java网络编程_netTestClient/com.common/User.java package com.common; public class User implements java.io.Serializable{ //将这个类实现序列化 private String name; private String pass; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } }
发表评论
-
Java连接sql2005数据库三步曲
2012-12-27 10:48 689one、two、three 导入java包 import ja ... -
主题:Java面试122题 .
2012-12-27 10:17 8582012-06-05 09:17 592人阅读 ... -
Java六大必须理解的问题
2012-12-27 10:17 4872012-05-24 11:39 793人阅读 评论(6) 收 ... -
多线程知识点整理 .
2012-12-27 10:17 554基本概念 多线程程序 ... -
数据连接池的基本实现 .
2012-12-26 13:20 8291、 实现途径: 编写JdbcPool implemen ... -
java 常用三大集合类
2012-11-23 11:07 13755一、Set集合,其主要实现类有HashSet、TreeSet。 ... -
Java笔记8(jdbc-odbc、jdbc、JTable使用、Min版学生管理系统)
2012-10-16 14:34 1412Java基础8 Java基础8 1 文件结构 ... -
swing编程实现闪屏登录效果
2012-09-18 12:07 27101、先写一个闪屏类 package com.mhl.Tools ... -
paint和paintComponent方法的关系
2012-09-18 09:50 916关键词:swing,paint,paintComp ... -
Java笔记7(IO操作、图片拷贝、记事本、测试声音、坦克大战)
2012-08-23 15:05 1022File类的基本用法_Demo12_1.java /* ... -
Java笔记6(多线程、机票售票系统、坦克大战)
2012-08-23 14:39 1583多线程Demo10_1.java /* * 演 ... -
Java笔记5(java绘图原理、事件处理机制、监听器、坦克大战)
2012-08-23 14:30 2824java绘图原理Demo9_1.java /* ... -
java中equals和==的区别
2012-08-17 10:33 17508ava中equals和==的区别 值类型是存储在内存中的堆栈( ... -
Java笔记4(布局管理器、常用组件、qq聊天界面、记事本)
2012-08-13 14:12 3376文件结构 布局管理器Demo8_1.java pa ... -
Java笔记3(泛型、异常、成绩评分程序)
2012-08-09 10:31 1022文件结构 泛型与异常 异常 Class7b / c ... -
Java笔记1(java类、接口、封装、继承、多态、约瑟夫环应用)
2012-08-09 10:26 1038文件结构 Java访问修饰符 com.xiaoming ... -
Java笔记2(数组、排序、查找、集合类、移位)
2012-08-09 10:18 1732文件结构 Class5 / com.t ...
相关推荐
java并发编程实践笔记java并发编程实践笔记java并发编程实践笔记java并发编程实践笔记
Java游戏编程读书笔记,Java游戏编程读书笔记
适合J2EE开发应用,以及大型门户网站的建站开发
java编程基础笔记java编程基础笔记java编程基础笔记java编程基础笔记
尚硅谷康师傅java学习笔记。 、2020-4-5 java学习笔记 2020-4-6 java笔记 ---内部类 2020-4-6 java笔记 ---异常 ...2020-4-19 java 网络编程 2020-4-21 java反射 2020-4-22 java8 新特性 2020-4-27 单元测试
java编程思想笔记,建议与书本结合使用。。。。。。。。。。。
Java是一种面相对象的编程语言。计算机语言分成两种,第一种是面向机器结构的语言,构建数据模型是基于机器的结构。第二种是面向待解决问题结构的语言,构建数据模型是基于问题的结构。Java提供了更丰富的工具来描述...
java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)java编程规范(含心得笔记及其解释)
java全套笔记 入门到实践 适合热爱java的人群 所有笔记 来自狂神说java
Java并发编程学习笔记
非常适合初学者使用,也可以作为工具提供给java高级编程人员
狂神说Java笔记PDF文档。内容包括JAVA入门、基础语法、流程控制、方法、数组、面向对象、异常机制、常用类、集合框架、IO流、多线程、网络编程、Gui编程、注解和反射。
Java Socket编程笔记_动力节点Java学院整理,动力节点口口相传的黄埔军校
计算机Java编程笔记
Java编程思想重点笔记(Java开发必看)
李兴华java实战经典笔记
渣渣英语学java网络编程一部分