Socket编程实现双机通信小案例

来源:互联网 发布:linux 专家编程 pdf 编辑:程序博客网 时间:2024/06/05 02:57

枯燥的大学生活总是需要一些小东西去耍耍,正好帅帅在学习计算机网络,来试一下socket通信,看看在Java中套接字这玩意怎么耍,嘻嘻

网上关于实现双机通信Socket编程案例有很多,但是一个普适性的,适合新手快速上手的不多

下面介绍一种实现单方面会话的CS(Client and Server)双机通信


首先呢你需要在一台A机器下打开命令行cmd->ipconfig获取你的ipv4地址很关键oo比如说192.168.100.32

然后呢这个就作为服务器的地址咯

再打开你的IDE新建一个Javaproject,新建一个服务类我这里是Test_imply

代码如下:

package test;import java.io.*;import java.net.*;import java.util.*;public class Test_imply{ public static void main(String[] args) {int count =0;try{ServerSocket server=new ServerSocket(9999);//打印提示信息System.out.println("服务器已经对9999端口进行监听……");//服务器循环接受客户请求while(true){Socket sc=server.accept();//获取当前连接的输入流,并使用处理流进行封装DataInputStream din=new DataInputStream(sc.getInputStream());//获取当前连接的输出流,并使用处理流封装DataOutputStream dout=new DataOutputStream(sc.getOutputStream());//打印客户端的信息System.out.println("=======================第"+(++count)+"次会话=================");System.out.print("客户端口号:"+sc.getInetAddress());System.out.println(",本地端口:"+sc.getPort());System.out.println("客户端信息:"+din.readUTF());//向客户端发送回应信息dout.writeUTF(sc.getInetAddress()+"您好,帅帅服务器实时时间是:"+(new Date())+".并且已经成功收到您的请求");//关闭流din.close();dout.close();sc.close();}   }catch(Exception e){e.printStackTrace();}}}

然后呢运行它,起来伸个懒腰,到B机器上打开IDE(比如eclipse)新建一个Javaproject,新建一个服务类我这里是Client

代码如下:

import java.io.*;import java.net.*;public class Client{public static void main(String[] args){String Serverip,Client_say;Serverip="192.168.100.32";//服务器ipClient_say="";            //客户机发来请求内容try{//创建连接到服务器的Socket对象while(!Client_said.equals("end")){Socket sc=new Socket(Serverip,9999);DataInputStream din=new DataInputStream(sc.getInputStream());//封装DataOutputStream dout=new DataOutputStream(sc.getOutputStream());System.out.println("连接成功,请输入:");BufferedReader input=new BufferedReader(new InputStreamReader(System.in));Client_said=input.readLine();//获取客户机说的话dout.writeUTF(Client_said);System.out.println(din.readUTF());  din.close();  dout.close();  sc.close();  }}catch(Exception e){e.printStackTrace();}}}

注意先别急着运行,先确认你的A,B两台机器连接在同一局域网下,确认后才运行!

下面来一波测试


还有注意一下所连服务器的ip,这是建立连接的关键哦哦!



原创粉丝点击