[Java] 【源码】新手初探java网络编程——socket接口实现简单的客户机/服务器程序
来源:互联网 发布:淘宝销量可以刷吗 编辑:程序博客网 时间:2024/05/20 06:06
首发于吾爱破解论坛,地址https://www.52pojie.cn/thread-643731-1-1.html 此帖作者也是我本人
也是我CSDN第一次发博
(实话说挺紧张的,这里大佬好多,我只是萌新大学生一个,见笑了)
最近上计算机网络与通信技术的课,老师布置了这样一个任务:1、 请在C、C++、Java、Python等语言中选取一种,在socket接口上实现一个简单的客户机/服务器程序。2、 客户机向服务器发送两次数据,服务器求和后显示,并向客户机返回结果,客户机收到回应后显示结果。
正好在学习java中,于是选择java编写
(刷了几天黑马程序员 毕向东老师的java视频 关键的部分和代码记下来了 很多都是毕老师的代码我改写,很感谢毕老师)
源码:
/*@author Eternity-Myth@date 2017.9.12*/ /*导入net包、IO包*/import java.net.*;import java.io.*; /*创建客户端*/class TCPClient{ public static void main(String[] args)throws Exception { //创建客户端的Socket服务,指定目的主机和端口 Socket s=new Socket("192.168.x.xxx",xxxx);//此处输入ip地址和端口 //定义读取键盘数据的流对象 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); //定义目的,将数据写入到socket输出流,发送给服务端 //BufferedWriter bufOut=new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); PrintWriter out=new PrintWriter(s.getOutputStream(),true); //定义一个socket读取流,读取服务端返回的信息 BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream())); String line=null; while((line=bufr.readLine())!=null) { if("over".equals(line)) break;//检测 客户端输入over后退出 out.println(line); String str=bufIn.readLine(); //将服务器返回的信息用字符串str存储起来 System.out.println("Server:"+str); //打印服务器返回的信息 } //关闭资源 bufr.close(); s.close(); }}
/*@author Eternity-Myth@date 2017.9.12*/ /*导入net包、IO包*/import java.net.*;import java.io.*; /*创建服务器端*/class TCPServer{ /*构造trans函数 作用:将客户端传来的信息(字符)变成int类型并返回 */ private static int trans(String str) { try { int num = Integer.parseInt(str); return num; } catch(NumberFormatException e) { e.printStackTrace(); } return 0; } public static void main(String[] args) throws Exception { //建立服务端socket服务,并监听一个端口 ServerSocket ss=new ServerSocket(6666); //通过accept方法获取连接过来的客户端对象 Socket s=ss.accept(); String ip=s.getInetAddress().getHostAddress(); System.out.println(ip+"......connected"); //读取socket读取流中的数据 BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter out=new PrintWriter(s.getOutputStream(),true); String line=null; int count=1;//数组下标标识 int num[]=new int[65536]; while((line=bufIn.readLine())!=null) { System.out.println(line);//在服务端打印客户端传来的信息 num[count]=trans(line);//转换成int类型后,存储在int数组内 count++;//下标增加,移动到下一位 if(count%2==0)//判断是否是第一个数,如果是,在客户端打印 { out.println("got the first num: "+num[count-1]); continue; } else//如果是第二个数,在客户端打印,并且打印两个数求和后的结果 { System.out.println("the sum is: "+(num[count-2]+num[count-1])); out.println("got the second num: "+num[count-1]+" the sum is: "+(num[count-2]+num[count-1])); } } //关闭资源 s.close(); ss.close(); }}
有点小bug是输入了字符串(非数字) 服务端会报错
倾听指教
阅读全文
1 0
- [Java] 【源码】新手初探java网络编程——socket接口实现简单的客户机/服务器程序
- java 网络客户机与服务器的交互
- Java实现简单的Socket服务器(源码公开)
- java网络编程----------Socket实现客户端和服务器的连接
- Java网络编程——利用Socket实现简单的网上聊天功能
- Linux下socket编程实现客户机服务器通信的例子
- Linux下socket编程实现客户机服务器通信的例子
- Java Socket编程Demo-基于TCP的单服务器多客户机群发/私聊系统
- Java 网络编程 服务器Socket
- Java网络编程 服务器Socket
- socket 的select 服务器/客户机程序
- JAVA 实现 EchoServer EchoClient 服务器、客户机本地通信程序
- JAVA网络编程——简单的聊天程序
- 用Java编写Socket客户机端程序
- Remoting技术初探--实现简单服务器客户机通信
- java简单Socket聊天室程序的实现
- Java Socket 编程——多线程网络聊天程序
- Java Socket 编程——多线程网络聊天程序
- Collections和Collection的区别
- discovery studio v2.5免费版下载 附安装教程
- 数据结构——线性表——顺序表
- Ubuntu 安装配置GitLab(企业版&社区版&个人版Git管理)
- keras的自编码实现
- [Java] 【源码】新手初探java网络编程——socket接口实现简单的客户机/服务器程序
- 类和对象
- Spring MVC 解决跨域问题&以及对@RequestBody的理解
- what's
- python3中的struct模块使用
- Python学习day02
- 关于Android项目中Socket通信的那点事
- HDOJ HDU 1133 Buy the Ticket
- javascript实现队列