java用socket和serversocket实现一对一聊天(java实现简单的TCP聊天程序)
在上次发表类似文章的基础上做了一点手脚,这次可以直接运行两个控制台,不用再去用telnet IP端口了,这个可以直接在eclipse分别执行服务器端类和客户端类,然后在客户端和服务端上进行交互。更为方便。我的代码实现如下:
首先我的文件结构是
在ServerDemo.java中编写以下代码:
package com.jiaxun.net;import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;public class ServerDemo {//服务器public static void testServer(){//创建一个服务器System.out.println("等待客户端连接。。。");PrintWriter pwtoclien = null;Scanner keybordscanner = null;Scanner inScanner = null;ServerSocket ss = null;try {ss = new ServerSocket(6666);//创建一个接收连接客户端的对象Socket socket = ss.accept();System.out.println(socket.getInetAddress()+"已成功连接到此台服务器上。");//字符输出流pwtoclien = new PrintWriter(socket.getOutputStream());pwtoclien.println("已成功连接到远程服务器!"+"\t"+"请您先发言。");pwtoclien.flush();keybordscanner = new Scanner(System.in);inScanner = new Scanner(socket.getInputStream());//阻塞等待客户端发送消息过来while(inScanner.hasNextLine()){String indata = inScanner.nextLine();System.out.println("客户端:"+indata);System.out.print("我(服务端):");String keyborddata = keybordscanner.nextLine();System.out.println("我(服务端):"+keyborddata);pwtoclien.println(keyborddata);pwtoclien.flush();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {pwtoclien.close();keybordscanner.close();inScanner.close();try {ss.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String[] args) {testServer();}
}
在ClientDemo.java中编写以下代码:
package com.jiaxun.net;import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;public class ClientDemo {public static void testClient(){System.out.println("正在向服务器请求连接。。。");Socket socket = null;Scanner keybordscanner = null;Scanner inScanner = null;PrintWriter pwtoserver = null;try {socket = new Socket("192.168.0.12", 6666);inScanner = new Scanner(socket.getInputStream()); System.out.println(inScanner.nextLine());pwtoserver = new PrintWriter(socket.getOutputStream());System.out.print("我(客户端):");//先读取键盘录入方可向服务端发送消息keybordscanner = new Scanner(System.in);while(keybordscanner.hasNextLine()){String keyborddata = keybordscanner.nextLine();//展示到己方的控制台System.out.println("我(客户端):"+keyborddata);//写到服务端的的控制台pwtoserver.println(keyborddata);pwtoserver.flush();//阻塞等待接收服务端的消息String indata = inScanner.nextLine();System.out.println("服务端:"+indata);System.out.print("我(客户端):");}} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {keybordscanner.close();pwtoserver.close();inScanner.close();try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String[] args) {testClient();}
}
效果如下:
ServerDemo的控制台的显示结果
ClientDemo的控制台的显示结果
java用socket和serversocket实现一对一聊天(java实现简单的TCP聊天程序)相关推荐
- java局域网聊天代码_简单的局域网聊天程序(java版本的)
局域网聊天程序,首先我已经默认你的电脑已经配置好的java开发的一些环境,所需代码有两个java的源代码,他们分别是1:Server_Test.java-------2:Socket_Test.jav ...
- java项目qq聊天室_简单的qq聊天室项目(作者涂俊伟)
项目总结 经过这10天的项目实训使我们受益匪浅.虽然其中遇到了很多困难,在写程序 中是写一个函数,就调试一次,看看 有没有问题,再继续往下写,这样减轻了后面调试的压力. 项目过程: 1.构思,聊天室的 ...
- java使用socket网络编程实现qq互聊(UPD简单版本)
JAVA初学者.勿喷. eclipse稍微有点难用,关程序是在Console里面,要是没开出来并且死循环的话电脑cpu直接拉满了. 而且进程的关闭是输入指定的"再见"才关闭多线程, ...
- node php聊天室,最简单的Nodejs聊天室示例
今天群里一个同学找我要一个nodejs聊天室的demo.给他了一个简单的例子,顺便记录下: 准备工作(前提是已经装好了nodejs):mkdir nodejs-demo cd nodejs-demo安 ...
- 聊天室 一个简单的mqtt聊天室的实现
一.架构总体 云端服务器 负责 1.mqtt代理服务器 2.网页服务器 3.聊天数据账户的db 客户端 逻辑/能力 描述 1.页面刚打开时,服务端从数据库下发用户下的所有好友关系(topic形式存在) ...
- api有哪些 javasocket_基于java的socket编程及API解析
一.socket通讯过程 1.socket与socket编程简介: socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.通过 socket 这种约定,一台 ...
- java socket 获取网页源代码_通过java.net.Socket 类抓取网页内容
/** 文件名 : Firstsocket.java 描述 :通过 java.net.Socket 类访问一个web页面,并且返回结果 作者: 慈勤强 cqq1978@yeah.net 参考:http ...
- Java笔记整理七(网络编程,TCP通信程序,函数式接口,方法引用)
网络编程入门 1.软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构.常见程序有QQ.迅雷等软件. B/S结构 :全称为Browser/Server结构,是指浏览器和 ...
- java中socket实现一对一聊天
要求:使用socket实现简单聊天机器人功能,客户端发给服务端一句话,服务端返回一句话(可以是固定的"你好",也可以是随机的),当客户端输入exit时结束对话. 总体思想: 创建s ...
最新文章
- YOLOv4全文阅读(全文中文翻译)
- 文件服务器访问权限分配,设置文件服务器的访问权限
- matlab实现三次样条插值
- recycleviewitem 列表加载动画_2019年Q4动画数据报告 | 伍六七之最强发型师评论数破十万...
- luogu P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
- 二叉树构造c语言实现,递归创建二叉树c语言实现+详细解释
- Arduino入门笔记(6):温度传感器及感温杯实验
- idea怎么给项目改名_IDEA相关配置【java项目改造成web项目】
- nginx + gunicorn + django 2.0 踩坑
- python命令行安装包
- 新能源充电桩后台管理系统平台
- 均匀分布的期望和方差
- 一文解析TCP知识体系
- OpenShift免费空间申请使用教程
- wo-27s管理员账户和密码_“无法使用内置管理员账户打开”应用
- 收到了两家公司的offer怎么选择?
- 黄金比例编程python_python实现黄金分割法
- 分享一个通过网络链接PDF转JPG的公用方法
- 外包 | LBP/HOG/CNN 实现对 CK/jaffe/fer2013 人脸表情数据集分类
- 如何批量重命名文件?