java网络编程一:Socket用法,简单模拟一对一聊天
来源:互联网 发布:unity3d water4水插件 编辑:程序博客网 时间:2024/05/04 23:19
1、socket和serverSocket通信简单介绍如下,注意客户端与服务器端是怎么交换数据的
2、模拟qq聊天功能,实现客户端与服务器(一对一)的聊天功能
服务器端代码:
package demo.net;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;/** * 模拟qq聊天功能: 实现客户端与服务器(一对一)的聊天功能,客户端首先发起聊天,输入的内容在服务器端和客户端显示, * 然后服务器端也可以输入信息,同样信息也在客户端和服务器端显示 */// 服务器类public class ChatServer {private int port = 8189;// 默认服务器端口public ChatServer() {}// 创建指定端口的服务器public ChatServer(int port) {this.port = port;}// 提供服务public void service() {try {// 建立服务器连接ServerSocket server = new ServerSocket(port);// 等待客户连接Socket socket = server.accept();try {// 读取客户端传过来信息的DataInputStreamDataInputStream in = new DataInputStream(socket.getInputStream());// 向客户端发送信息的DataOutputStreamDataOutputStream out = new DataOutputStream(socket.getOutputStream());// 获取控制台输入的ScannerScanner scanner = new Scanner(System.in);while (true) {// 读取来自客户端的信息String accpet = in.readUTF();System.out.println(accpet);String send = scanner.nextLine();System.out.println("服务器:" + send);// 把服务器端的输入发给客户端out.writeUTF("服务器:" + send);}} finally {// 建立连接失败的话不会执行socket.close();socket.close();}} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {new ChatServer().service();}}
客户端代码:
package demo.net;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.Socket;import java.util.Scanner;/** * 注意用到的输入输出流DataInputStream和DataOutputStream,成对出现,最好用字节流 */// 客户端类public class ChatClient {private String host = "localhost";// 默认连接到本机private int port = 8189;// 默认连接到端口8189public ChatClient() {}// 连接到指定的主机和端口public ChatClient(String host, int port) {this.host = host;this.port = port;}public void chat() {try {// 连接到服务器Socket socket = new Socket(host, port);try {// 读取服务器端传过来信息的DataInputStreamDataInputStream in = new DataInputStream(socket.getInputStream());// 向服务器端发送信息的DataOutputStreamDataOutputStream out = new DataOutputStream(socket.getOutputStream());// 装饰标准输入流,用于从控制台输入Scanner scanner = new Scanner(System.in);while (true) {String send = scanner.nextLine();System.out.println("客户端:" + send);// 把从控制台得到的信息传送给服务器out.writeUTF("客户端:" + send);// 读取来自服务器的信息String accpet = in.readUTF();System.out.println(accpet);}} finally {socket.close();}} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {new ChatClient().chat();}}
运行结果:
注意运行的时候要先开服务器,再开客户端,聊天由客户端发起。运行结果中绿色的字表示输入。
- java网络编程一:Socket用法,简单模拟一对一聊天
- java网络编程一:Socket用法,简单模拟一对一聊天
- java网络编程一:Socket用法,简单模拟一对一聊天
- java网络编程一:Socket用法,简单模拟一对一聊天
- Socket用法,简单模拟一对一聊天
- java网络编程一:模拟qq聊天功能,实现一对一聊天
- 【java编程】Socket编程之UDP模拟简单聊天功能
- Java网络----Socket, 多线程实现内网多人聊天及一对一聊天
- 网络编程SOCKET实现一对一网络聊天,Ctrl+F5
- 基于Java Socket编程的一对一聊天软件
- java 多线程,socket 简单模拟聊天软件
- JAVA简单多线程一对一聊天
- java用socket和serversocket实现一对一聊天(java实现简单的TCP聊天程序)
- java 聊天程序 socket网络编程
- socket编程网络聊天
- java中socket实现一对一聊天
- JAVA中的Socket一对一聊天程序
- java网络编程之一对一的socket C/S通信
- 顺序查找
- win7旗舰版无法安装vs2010
- 32位,64位机与内存基础知识
- C++知识点
- Request.UrlReferre---返回上一页面
- java网络编程一:Socket用法,简单模拟一对一聊天
- 查看表视图
- ASP.NET MVC3 技术(七) ASP.NET MVC3 项目部署
- 解决”正尝试安装的adobe flash player不是最新版本“的办法(学习笔记)
- 黑马程序员_Java多态性详解——父类引用子类对象
- 内存泄露检查的Instruments-Leaks使用心得
- I2C驱动的4个数据结构间的关系
- ASP.NET MVC 3 :解决 Google Chrome 读取 favicon.ico 错误
- split字符串,再遍历String[]显示