java中socket网络通讯

服务器端代码:

package socket;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {  
    public static int port = 8088;  
    public static String ip = "";  
      
    public static void main(String[] args) throws IOException {  
        //①启动服务器  
        ServerSocket server = new ServerSocket(port);  
        System.out.println("server running...");  
        //②监听Socket  
        Socket socket = server.accept();  
        //③IO流  
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));  
        PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));  
          
        String client = null;  
        //如果接收到客户端的exit信号则关闭Socket  
        while(!"exit".equalsIgnoreCase(client = br.readLine())){  
            System.out.println("from client say:"+client);  
            pw.println("server get your info :" +client);  
            pw.flush();  
        }  
                  
        br.close();  
        pw.close();  
          
        socket.close();  
        server.close();  
    }  
}

客户端代码:

package socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {  
    
    public static void main(String[] args) throws IOException {  
        //连接服务器  
        Socket socket = new Socket(Server.ip,Server.port);  
        System.out.println("client running...");  
          
        System.out.println("-----insert your info:");  
        //用户在控制台输入向服务器发送的信息  
        BufferedReader brConsole = new BufferedReader(new InputStreamReader(System.in));  
        //IO流  
        PrintWriter pw = new PrintWriter(socket.getOutputStream());  
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));  
          
        String server = null;  
        //如果用户输入exit则关闭Socket  
        while(!"exit".equalsIgnoreCase(server =  brConsole.readLine())){  
            pw.println(server);  
            pw.flush();  
            System.out.println("from server say:"+br.readLine());  
        }  
        //当用户输入exit时,把exit信息发送给服务器,服务器关闭当前Socket  
        pw.println(server);  
        pw.flush();  
        pw.close();  
        brConsole.close();  
        br.close();  
        socket.close();  
    }  
}

时间: 2024-09-30 03:32:12

java中socket网络通讯的相关文章

黑马程序员————java中的网络编程

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- java中的网络编程 一.网络编程概述:基于互联网的编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 二.网络模型:OSI和TCP/IP 1.OSI(Open System Interconnection开放系统互连

第62节:探索Java中的网络编程技术

前言 感谢! 承蒙关照~ 探索Java中的网络编程技术 网络编程就是io技术和网络技术的结合,网络模型的定义,只要共用网络模型就可以两者连接.网络模型参考. 一座塔有七层,我们需要闯关. 第一层物理层->第二层数据链路层->第三层网络层->第四层传输层->第五层会话层->第六层表示层->第七层应用层. 物理层是主要定义物理设备标准,数据链路层是主要讲从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装.这层的数据较帧. 网络层是将从下层接收到的数据进行IP地址的

[转] C#.Net Socket网络通讯编程总结

1.理解socket1).Socket接口是TCP/IP网络的应用程序接口(API).Socket接口定义了许多函数和例程,程序员可以用它们来开发TCP/IP网络应用程序.Socket可以看成是网络通信上的一个端点,也就是说,网络通信包括两台主机或两个进程,通过网络传递它们之间的数据.为了进行网络通信,程序在网络对话的每一端都需要一个Socket. 2).TCP/IP传输层使用协议端口将数据传送给一台主机的特定应用程序,从网络的观点看,协议端口是一个应用程序的进程地址.当传输层模块的网络软件模块

java中的网络编程基本回顾

网络编程基本概念,TCP/IP协议简介 网络基础知识 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机.而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程

Java之Socket网络编程实践

转自:http://my.oschina.net/leejun2005/blog/104955#comments 一.TCP/IP协议 既然是网络编程,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输.这里就要使用到TCP/IP协议. TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成.IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机.TCP层负责面向应用的可

Java中socket接口调用

最近一个项目中接口通讯这一块主要是调用银联系统的socket接口,我方是客户端,即发送请求接收返回报文的一方.在贴代码之前,还是要了解一下关于socket的基础知识. Socket的基本概念 1.建立连接 当需要建立网络连接时,必须有一台机器运行一个程序,随时等候连接,而另一端的程序这对其发出连接请求.这一点同电话系统类似--必须有一方拨打电话,而另一方必须等候电话连通. 建立连接的过程为: (1)先在服务器端生成一个ServerSocket实例对象,随时监听客户端的连接请求. (2)当客户端需

第78节:Java中的网络编程(上)

前言 网络编程涉及ip,端口,协议,tcp和udp的了解,和对socket通信的网络细节. 网络编程 OSI开放系统互连 网络编程指IO加网络 TCP/IP模型: 应用层 传输层 网际层 主机到网络层 OSI模型:(封装) 网络1封包->网络2拆包 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 网络通讯要素: ip地址 端口号 传输协议 主机名和ip地址是对应的,默认的主机名:localhost java.net 类 InetAddress java.lang.Object ->

Java中的网络支持InetAddress&amp;URL

针对网络通信的不同层次,Java提供的网络功能有四大类 InetAddress:用于标识网络上的硬件资源.(说白了就是IP地址的相关信息) URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据 Sockets:使用TCP协议实现网络通信的Socket相关的类 Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信.(通过在网络中发送数据报进而实现网络的通信) InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)协议. 1 package zhan

Java中的网络编程

Java中的网路编程主要是Java的Socket编程,属于JavaEE中的高级的部分,以下内容是对java网路编程的一个小结,代码都是经过编译调试的 C/S程序应用:客户/服务器模式,如QQ客户端,客户端连到服务器上,一个C/S模式的应用必须有两套程序,一个是客户端的程序,一个是服务器程序. B/S程序应用:浏览器/服务器模式,如当下的各种网站都是B/S模式,所有的程序代码都在服务器上,用户通过浏览器去访问. C/S程序分为两种: 基于TCP协议:Socket(套接字), 可靠的编程: A->B