Java Socket 通信 (一)

前言:以前就学习过关于Socket编程的知识,那时候觉得还挺容易,能够实现服务器和客户端的聊天。后来,渐渐的就忘记了。由于现在在一家金融公司,公司项目必须使用到Socket,而我对Socket已模糊不清了,今天可以说是温故而知新吧。

Socket ----套接字

是网络应用程序编程的接口和一种机制

用套接字中的相关函数来建立链接和完成通信

Socket可以看成在两个程序进行通讯连接中的一个端点

通过IP地址可以唯一标识网络中的主机。而协议和端口号,可以唯一标识主机中的应用程序(进程)。

开始上代码来看看Socket如何使用,首先服务端:

package com.demi.rx;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Created by demi on 16/10/12.
 */

public class Server {
    
    public static void main(String args[]){
        ServerSocket ss = null;
        Socket s= null;
        DataInputStream dis =null;
        DataOutputStream dos =null;
        try {
             ss =new ServerSocket(3320);
            while(true){
                s = ss.accept();
                 dis =new DataInputStream(s.getInputStream());
                System.out.println(dis.readUTF()); //打印来自客户端的数据
                 dos =new DataOutputStream(s.getOutputStream());
                dos.writeUTF("hello Client :" +s.getInetAddress()+" :" +s.getPort());//写入数据到客户端
            }
        } catch (IOException e) {
            e.printStackTrace();
            try {
                dis.close();
                dos.close();
                s.close();
                ss.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
}

然后客户端 Client.java:

<pre name="code" class="java">package com.demi.rx;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

/**
 * Created by demi on 16/10/12.
 */

public class Client extends Socket{
    public static void main(String args[]){
        DataInputStream dis =null;
        DataOutputStream dos =null;
        try {
            Socket socket =new Socket("127.0.0.1",3320);
            dos =new DataOutputStream(socket.getOutputStream());
            dos.writeUTF("hello Server"); //写入数据到服务器。
            dos.flush();
            dis =new DataInputStream(socket.getInputStream());
            System.out.println(dis.readUTF());//打印输出来自服务器的数据。
            dis.close();
            dos.close();
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值