对于进行java编程的小伙伴们来说,实现有一个通信程序是一个很有趣的事情,这里采用c/s网络结构,建立了一个网络的客户端程序,希望对您有所启发。
注意:文中的“套字节”是错误的,应改为“套接字”;小编已经修改,若还有其他错误烦请留言,马上修改
1.准备
1.打开IDE:
打开自己进行编写java程序的工具,如图所示,采用的是eclipse软件;
2.建立一个java工程:
对于建立java工程的详细步骤(对于eclipse软件),大家可参见经验“eclipse如何建立一个java工程”;
简洁操作如下:
单击“file”-“new”-“java project”;
然后,在工程菜单中选中工程,单击鼠标右键,在下拉菜单中选中“new”-“class”;
- 相关内容未经许可获取自百度经验
3.建立程序构架:
如图所示,由于下面程序中采用的方法要抛出一个异常,所以添加了try catch结构;
并采用了仅仅一个main方法来实现;
END
2.客户端编程步骤
1.建立套接字连:
实例化一个套接字类,并指定对应主机(主机名或是ip),和主机对应的端口;
所谓主机是:服务器机器;
因为本实例中接收和发送在一个电脑上运行,所以,主机也就是本机,具体代码如下:Socket sc=new Socket(InetAddress.getLocalHost(),9999);
网上也有Socket sc=new Socket(args[0],9999);的方法,但是老报错。
2.得到数据流:
通过java中流的知识获取套接字的输出流和输入流,本实例采用DataInputStream 与 DataOutputStream;
DataInputStream 与 DataOutputStream 提供了与平台无关的数据操作,通常会先过 DataOutputStream 按照一定的格式输出,再通过 DataInputStream 按照一定格式读入,比较适用于通过协议传输的信息的网络上。
具体代码如下:
DataInputStream din=new DataInputStream(sc.getInputStream());
DataOutputStream dout=new DataOutputStream(sc.getOutputStream());
3.发送信息:
通过对流的操作可将我们需要发送的信息发送给主机的,本实例发送给主机一个“hao”,接着接收主机发来的信息“******”
代码如下:
dout.writeUTF("hao");
System.out.println(din.readUTF());
4.关闭流:
为了保证计算机资源的高效利用,我们要对流进行及时的关闭,代码如下:
din.close();
dout.close();
sc.close();
END
3.效果验证
1.先执行服务器:
由于采用的是c/S结构,所以需要先有一个监听的服务器,并执行,使用的服务器代码如下:
public class severnettext {
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("客户端ip地址是:"+sc.getInetAddress());
System.out.println("客户端端口号是:"+sc.getPort());
System.out.println("本地端口号是:"+sc.getLocalPort());
System.out.println("客户端消息是:"+din.readUTF());
dout.writeUTF("已收到你发来的消息!!");
din.close();
dout.close();
sc.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
2.执行该程序
单击“编译并执行”按钮右侧的小箭头,选中我们客户端程序,就可以运行了;
3.查看服务器回应:
运行结束后,我们会看到服务器的回应如下图所示,说明通信效果可行。
END
















