socket超简单实例

一个超级简单的socket实现通信

SocketServer

public class SocketServer {

    public static void main(String[] args) {
        makeSocketSerer();
    }

    public static void makeSocketSerer(){

        ServerSocket serverSocket = null;
        try{
            //启动一个服务,指定端口
            serverSocket = new ServerSocket(8888);
            while(true){
                //等待一个接收请求
                Socket socket = serverSocket.accept();
                //lamda表达式
                new Thread(()->{
                    try {
                        //读取客户端带来的数据
                        BufferedReader bufferReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                        //返回给客户端数据
                        PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));

                        while(true){
                            String getClientDate = bufferReader.readLine();
                            if(getClientDate == null){
                                break;
                            }
                            System.out.println("server端接收到的消息内容: "+getClientDate);

                            printWriter.println("Hello socket Client!!!");
                            printWriter.flush();
                        }
                        printWriter.close();
                        bufferReader.close();
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }).start();
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(serverSocket != null){
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

    }
}

SocketClient

public class SocketClient {

    public static void main(String[] args) {
        makeSocketClient();
    }

    public static void makeSocketClient(){
        try {
            //定一个ip和端口的socket连接
            Socket socket = new Socket("localhost", 8888);

            //接收服务端返回的消息
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            //往服务端发送消息
            PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);
            printWriter.println("Hello socket Server !!!");

            while(true){
                String getServerData = bufferedReader.readLine();
                if(getServerData == null){
                    break;
                }
                System.out.println("Client接收到的数据: "+getServerData);
            }

            printWriter.close();
            socket.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

原文地址:https://www.cnblogs.com/liqiang0728/p/11109999.html

时间: 2024-10-12 02:43:03

socket超简单实例的相关文章

Python socket通信~简单实例

socket编程步骤 服务端创建一个socket,绑定地址和端口,然后监听端口上传入的连接,一旦有连接进来,就通过accept函数接收传入的连接. 客户端也是创建一个socket.绑定远程地址和端口,然后建立连接,发送数据. family 地址簇,用与socket()函数的第一个参数.主要有以下几个 socket.AF_UNIX 用与单一机器下的进程通信 socket.AF_INET 用与服务器之间相互通信,通常都用这个. socket.AF_INET6 支持IPv6 sockettype so

Socket通信简单实例(WCF调用Socket)

服务端: 控制台程序监听 1 /// <summary> 2 /// Server 3 /// </summary> 4 class Program 5 { 6 static Socket serverSocket; 7 static Socket clientSocket; 8 static Thread thread; 9 10 static void Main(string[] args) 11 { 12 IPEndPoint ipep = new IPEndPoint(IP

java Socket通信简单实例

import java.io.*; import java.net.*; public class ClientTest { public static void main(String[] args) throws Exception { Socket s = new Socket("localhost", 8888); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); dos.writeUTF(&qu

C# Socket通信简单实例

一.套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口. 应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题.多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据.为了区别不同的应用程序进程和连接,许多计算机操作系统为应用

Linux C Socket编程原理及简单实例

原文:http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html 部分转自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx 1.   什么是TCP/IP.UDP? 2.   Socket在哪里呢? 3.   Socket是什么呢? 4.   有很多的框架,为什么还在从Socket开始? 5.   Linux C Socket简单示例 1.什么是TCP

程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注头条号.每日更新.也可以添加小编微信:fullstackCourse.一起交流,获取最新全栈教程信息.因为FQ原因,不能下载客户端的同仁,可以关注后回复“GitHub客户端”获取安装软件. 上篇教程:GitHub这么火,程序员你不学学吗? 超简单入门教程 干货 GitHub概念部分出现了一丝纰漏.为

超简单使用批处理(batch)操作数据库

超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的快递都用车带到发放处派给客户. 批处理(batch)操作数据库 批处理指的是一次操作中执行多条SQL语句,批处理相比于一次一次执行效率会提高很多. 批处理操作数据库的过程主要是分两步: 1.将要执行的SQL语句保存 2.执行保存的SQL语句 如何实现批处理 Statement和PreparedSta

打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释

为什么要做这个看起来不靠谱的东西呢? 由于刚学android开发,还不能非常好的熟练控制android界面的编辑和操作,所以我的一个急着要的运用就改为html5版本号了,反正这个运用也是须要从server获取大量数据来展示在手机上面的,也就是说:必须联网,才干正常工作,于是想了一下,反正都要联网获取数据,为什么不直接用我相对熟悉一点的 html来做这个运用呢?省的花费不够用的时间去学习android界面的控制,于是就简单了:用蹩脚的手段做了一个android程序的启动欢迎界面,内页就是一个全屏的

python之socket-ssh实例

本文转载自大王http://www.cnblogs.com/alex3714/articles/5830365.html 加有自己的注释,应该会比原文更突出重点些 一. 基本Socket实例 前面讲了这么多,到底咋么用呢? 1 import socket 2 3 server = socket.socket() #获得socket实例 4 5 server.bind(("localhost",9998)) #绑定ip port 6 server.listen() #开始监听 7 pri