第一种:

客户端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基础篇—模拟服务器与客户端通信的更多相关文章

  1. C#调用接口注意要点 socket,模拟服务器、客户端通信 在ASP.NET Core中构建路由的5种方法

    C#调用接口注意要点   在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用, 所以首先需要通过调用登录接口来保存c ...

  2. socket,模拟服务器、客户端通信

    服务器代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;u ...

  3. java基础篇---HTTP协议

    java基础篇---HTTP协议   HTTP协议一直是自己的薄弱点,也没抽太多时间去看这方面的内容,今天兴致来了就在网上搜了下关于http协议,发现有园友写了一篇非常好的博文,博文地址:(http: ...

  4. 金三银四跳槽季,BAT美团滴滴java面试大纲(带答案版)之一:Java基础篇

    Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可 ...

  5. java基础篇---I/O技术(三)

    接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象 ...

  6. 小白—职场之Java基础篇

    java基础篇 java基础 目录 1.java是一种什么语言,jdk,jre,jvm三者的区别 2.java 1.5之后的三大版本 3.java跨平台及其原理 4.java 语言的特点 5.什么是字 ...

  7. Java基础篇(JVM)——类加载机制

    这是Java基础篇(JVM)的第二篇文章,紧接着上一篇字节码详解,这篇我们来详解Java的类加载机制,也就是如何把字节码代表的类信息加载进入内存中. 我们知道,不管是根据类新建对象,还是直接使用类变量 ...

  8. java基础篇---I/O技术

    java基础篇---I/O技术   对于任何程序设计语言而言,输入输出(I/O)系统都是比较复杂的而且还是比较核心的.在java.io.包中提供了相关的API. java中流的概念划分 流的方向: 输 ...

  9. js json简介(json的本质也是字符串)(用于服务器和客户端通信)

    js json简介(json的本质也是字符串)(用于服务器和客户端通信) 一.总结 1.json的语法和js的语法非常像,只是json的键和值都是双引号,因为json的本质也是字符串 2.json是一 ...

随机推荐

  1. STM32之CAN

    概述:STM32有3个发送邮箱,发送调度器根据优先级决定先发送那个,相当于有3个发送帧FIFO;接收方面有14个过滤器,通过编程可以从CAN的接收引脚中选择需要的报文然后分别给2个接收帧FIFO(每个 ...

  2. (转)C#抽象类和接口对比

    c#中抽象类(abstract)和接口(interface)的相同点与区别  转自:http://blog.csdn.net/fxh_hua/archive/2009/08/20/4464739.as ...

  3. 使用OAuth保护REST API并使用简单的Angular客户端

    1.概述 在本教程中,我们将使用OAuth保护REST API并从简单的Angular客户端使用它. 我们要构建的应用程序将包含四个独立的模块: 授权服务器 资源服务器 UI implicit - 使 ...

  4. 「干货分享」模块化编程和maven配置实践一则

    ​ 封面 说到模块化编程,对我个人而言首先起因于团队协作的需要,也就是组织架构结构特点来决定,而不是跟风求得自我认同,看看我们团队的组织结构: ​ 其中: 基础平台部职责: 1.AI实验室:语音,图像 ...

  5. vue-quill-editor上传内容由于图片是base64的导致字符太长的问题解决

    vue-quill-editor是个较为轻量级富文本框,相较于ueditor,开发更编辑,更加直观,如果大家伙在需求允许的情况下,还是会比较建议使用vue-quill-editor vue-quill ...

  6. JavaScript是什么

    JavaScript是一种解释型语言而不是编译型语言,它往往被认为是一种脚本语言,而不被看作是一种真正的编程语言.也就是说,脚本语言比较简单,它们是非程序员所使用的编程语言. 如果一个程序员对Java ...

  7. GoAccess自动分割Nginx日志

    GoAccess 是一款开源的网站日志实时分析工具.GoAccess 的工作方式很容易理解,就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友 ...

  8. 编写C#程序,自动将bing首页图片设为壁纸

    任务目标: 1,获取图片 2,设为壁纸 3,自动化 环境需求: .NET Framework 4.0+, Visual Studio 2017 ==================== 1,获取图片 ...

  9. 在SAP C4C里触发SAP ERP的ATP check和Credit check

    在C4C里创建一个新的Sales Quote: 添加三个行项目: 执行action "Request External Pricing"会从ERP更新pricing信息,触发ATP ...

  10. HDU 4284 Travel (Folyd预处理+dfs暴搜)

    题意:给你一些N个点,M条边,走每条边要花费金钱,然后给出其中必须访问的点,在这些点可以打工,但是需要先拿到证书,只可以打一次,也可以选择不打工之直接经过它.一个人从1号点出发,给出初始金钱,问你能不 ...