Java基础第十九课(使用Socket网络编程写一个简单的信息收发)

首先,什么是Socket呢?
直接上链接吧 百度解释的挺好的
哈哈,偷个懒,链接如下
https://baike.baidu.com/item/socket/281150?fr=aladdin

然后现在我们就用Socket来写一个简单的信息收发的程序
信息收发得需要一个服务端(接收信息)和一个客户端(发送信息)
代码如下:
服务端:

package com.baidu.demo.test14;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
//服务端
	public static void main(String[] args) {
		try {
			//创建一个Socket服务 端口为1221
			ServerSocket ss = new ServerSocket(1221);
			
			System.out.println("监听端口号:1221");
			//在1221端口上监听,看是否有连接请求过来,有连接过来后才开始执行下面的代码
			Socket s = ss.accept();
			
			System.out.println(s+"已连接");
			
			//得到输入流数字并打印
			InputStream in = s.getInputStream();
			System.out.println(in.read());
			
			//得到输入流中文并打印
			DataInputStream dis = new DataInputStream(in);
			System.out.println(dis.readUTF());
			
			s.close();
			ss.close();
		
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

客户端:

package com.baidu.demo.test14;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
//客户端
	public static void main(String[] args) {
		
		try {
			//创建一个Socket,连接到本机(127.0.0.1),端口是1221,启动该程序之前需要先把服务端程序启动
			Socket s = new Socket("127.0.0.1",1221);
			
			System.out.println("连接成功");
			
			//得到输出流并输出信息到服务端数字
			OutputStream out =  s.getOutputStream();
			out.write(123123123);
			
			//得到输出流并输出信息到服务端中文
			DataOutputStream dos = new DataOutputStream(out);
			dos.writeUTF("中文");
			
			dos.close();
			s.close();
			
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

我们首先得把服务端运行起来
然后再运行客户端
服务端运行情况:
在这里插入图片描述
客户端运行情况:
在这里插入图片描述
因为我是在客户端连接成功后就向服务端发送两条数据
分别是:“123123123”和“中文”两个数据
运行客户端后我们切换到服务端的控制台,可以看到:
在这里插入图片描述
这就说明我们的信息发送和接受成功了
ecllipse中切换两个控制台的方法如下
在这里插入图片描述


怎么说呢
本篇讲的可以说是很草率了
但是基本的Socket使用方法已经写了
大家可以根据我写的进行改进
比如说改进成一个简易的聊天室
这个你们自己下来改进啦,展现你身手的时候到了
能写出来一个聊天室说明你的Java基础已经学的不错了

哈哈
就这样吧
有事QQ497099936
欢迎撩骚
顾得白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值