JAVA基础篇—模拟服务器与客户端通信
第一种:
客户端class Client
package 服务器发送到客户端; import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket; public class Client {
public static void main(String[] args) {
try {
Socket socket=new Socket("127.0.0.1", 6666);
System.out.println("�ͻ��������ӡ���"); BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer=new PrintWriter(socket.getOutputStream());
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readline;
readline=br.readLine(); while (!readline.equals("end")) {
writer.println(readline);
writer.flush();
System.out.println("�ͻ���˵��"+readline);
System.out.println("��������"+in.readLine());
readline=br.readLine();
}
writer.close();
in.close();
socket.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("��������"+e);
}
}
}
服务器端class Server
package 服务器发送到客户端; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket; public class Server {
public static void main(String[] args) throws IOException{
Server server=new Server();
server.onServer(); }
public void onServer(){
ServerSocket server=null;
try {
try {
server=new ServerSocket(6666);
System.out.println("�ȴ��ͻ�������");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("��������"+e);
}
Socket socket=null;
try {
socket=server.accept();
System.out.println("������������");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Error."+e);
}
String line; BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter writer=new PrintWriter(socket.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("�ͻ��ˣ�"+in.readLine());
line=br.readLine();
while (!line.equals("end")) {
writer.println(line);
writer.flush();
System.out.println("������˵��"+line);
System.out.println("�ͻ��ˣ�"+in.readLine());
line=br.readLine();
}
writer.close();
in.close();
server.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
第二种:
客户端class TCPClient
package 服务器发送到客户端; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException; public class TCPClient {
public static void main(String[] args) throws UnknownHostException,IOException{
try {
Socket socket=new Socket("127.0.0.1", 6666);
System.out.println("�ͻ��������ӡ���"); BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer=new PrintWriter(socket.getOutputStream());//�����
String readline;
readline=br.readLine();
writer.println(readline);
writer.flush();
System.out.println("�ͻ���˵��"+readline); BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));//�õ�������
System.out.println("��������"+in.readLine()); writer.close();
in.close();
socket.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("��������"+e);
}
}
}
服务器端class TCPServer
package 服务器发送到客户端; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner; public class TCPServer {
public static void main(String[] args) throws IOException{
ServerSocket server=null;
try {
try {
server=new ServerSocket(6666);
System.out.println("�ȴ��ͻ�������");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("��������"+e);
}
Socket socket=null;
try {
socket=server.accept();
System.out.println("������������");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Error."+e);
}
String line;
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));//�õ�������
line=in.readLine();
System.out.println("�ͻ��ˣ�"+line); ArrayList<Integer> list = new ArrayList<Integer>();
Scanner scanner=new Scanner(line);
while (scanner.hasNext()) {
list.add(scanner.nextInt());
}
// ��һ���ַ����ָ�Ϊ���ַ���,Ȼ�JAVA基础篇—模拟服务器与客户端通信的更多相关文章
- C#调用接口注意要点 socket,模拟服务器、客户端通信 在ASP.NET Core中构建路由的5种方法
C#调用接口注意要点 在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用, 所以首先需要通过调用登录接口来保存c ...
- socket,模拟服务器、客户端通信
服务器代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;u ...
- java基础篇---HTTP协议
java基础篇---HTTP协议 HTTP协议一直是自己的薄弱点,也没抽太多时间去看这方面的内容,今天兴致来了就在网上搜了下关于http协议,发现有园友写了一篇非常好的博文,博文地址:(http: ...
- 金三银四跳槽季,BAT美团滴滴java面试大纲(带答案版)之一:Java基础篇
Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可 ...
- java基础篇---I/O技术(三)
接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象 ...
- 小白—职场之Java基础篇
java基础篇 java基础 目录 1.java是一种什么语言,jdk,jre,jvm三者的区别 2.java 1.5之后的三大版本 3.java跨平台及其原理 4.java 语言的特点 5.什么是字 ...
- Java基础篇(JVM)——类加载机制
这是Java基础篇(JVM)的第二篇文章,紧接着上一篇字节码详解,这篇我们来详解Java的类加载机制,也就是如何把字节码代表的类信息加载进入内存中. 我们知道,不管是根据类新建对象,还是直接使用类变量 ...
- java基础篇---I/O技术
java基础篇---I/O技术 对于任何程序设计语言而言,输入输出(I/O)系统都是比较复杂的而且还是比较核心的.在java.io.包中提供了相关的API. java中流的概念划分 流的方向: 输 ...
- js json简介(json的本质也是字符串)(用于服务器和客户端通信)
js json简介(json的本质也是字符串)(用于服务器和客户端通信) 一.总结 1.json的语法和js的语法非常像,只是json的键和值都是双引号,因为json的本质也是字符串 2.json是一 ...
随机推荐
- UML类图学习总结
1.首先来认识下类图?以及类图的作用 类图(Class diagram)由许多(静态)说明性的模型元素(例如类.包和它们之间的关系,这些元素和它们的内容互相连接)组成.类图可以组织在(并且属于)包中, ...
- RDL Web报表抛出ReportServerException,已取消该操作
::, RsBase() [ERROR] - Microsoft.Reporting.WebForms.ReportServerException: 已取消该操作. ---> System.Op ...
- SSIS父子维度
1.数据仓库结构: 2.区域的AttributeHierarchyVisible设置为False 3.Parent ID的Usage设置为Parent 4.级别命名: 5.结果:
- docker mysql安装
Docker MySQL-Server 安装1.搜索docker search mysql# 一般会选择mysql-server 版本 2.拉取 docker pull mysql-server 3. ...
- sqlserver 删除两种方法比较
delete from tb where id=1 删除数据 truncate table tb where id=1 第一种 自增长id不会删除,第二种会删除
- java的三大特性之一封装概述
属性: 属性static属性//静态成员变量/类变量 属性 //实例变量 普通成员变量 类变量,类方法 类变量是所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是同一个值,同样任何一个变量去 ...
- zblog忘记后台密码怎么办 官方解决方案
刚装的zblog还没开始研究,结果发现密码弄错了进不去后台,也是醉了 为节省时间,直接用官方方案,就是一个无密码进后台的文件.下载后把文件上传至网站根目录,然后直接访问后台修改密码 zblog密码找回 ...
- Windows及Linux环境搭建Redis集群
一.Windows环境搭建Redis集群 参考资料:Windows 环境搭建Redis集群 二.Linux环境搭建Redis集群 参考资料:Redis Cluster的搭建与部署,实现redis的分布 ...
- jQuery UI -- Repeater & 手风琴(Accordion)效果
jQuery UI -- Repeater & 手风琴(Accordion)效果 很简单的范例,完全不用写程序 直接套用就能做! 但是,基础不稳的人,连「复制贴上」直接套用, 对您而言,都困难 ...
- Distinct Values(贪心)
问题 D: Distinct Values 时间限制: 1 Sec 内存限制: 128 MB提交: 13 解决: 5[提交] [状态] [讨论版] [命题人:admin] 题目描述 Chiaki ...