Flex和java的socket通信(二)单向通信

目的:客户端向服务端发消息,服务端将消息显示在屏幕上,不给客户端发送任何数据。

服务器将反复进行一下过程。

1 等待客户机连接请求

2 连接客户机

3 在断开客户机连接之前,接收字符串

4 断开客户机连接

5 返回至第一步

获取与客户机连接的套接字的输入流,过程如下。

Socket socket=server.accept(); //返回与客户机连接的套接字
InputStream is=socket.getInputStream();  //获取套接字的InputStream
InputStreamReader isr=new InputStreamReader(is);
BufferedReader reader= new BufferedReader(isr); //字符串流

服务端代码:Server2.java

=========================================

import java.net.*;
import java.io.*;
public class Server2 {
private BufferedReader reader; //负责输入
private ServerSocket server;   //服务器套接字
private Socket socket;      //套接字
    public Server2(){}  //缺省构造函数
    void startServer()  //启动服务器
    {
        try
        {
            server=new ServerSocket(8888);    //创建服务器套接字
            System.out.println("服务器套接字建立完毕");
            while(true)
            {
              System.out.println("等待客户机");
              socket=server.accept(); //若客户机提出连接请求,与socket连接
              System.out.println("完成与客户机的连接");
              //获取socket输入流,“utf-8”这个编码设置是为了更好显示中文
reader=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));                                
getMessage();//读取来自客户机的数据,并输出至画面上
            }
        }catch(Exception e)
        {
            System.out.println(e);
        }
    }
    void getMessage()  //读取来自套接字的信息
    {
        try
        {
            while(true)    //循环
            {
                System.out.println("客户机:"+reader.readLine());
            }
        }catch(Exception e){}
        finally{
            System.out.println("客户机中断连接");
            try
            {
                if(reader!=null) reader.close(); //关闭套接字的输入流
                if(socket!=null) socket.close();  //关闭套接字
                reader=null;
                socket=null;
            }catch(Exception e){}
        }
    }
    public static void main(String[] args)
    {
        Server2 server=new Server2();
        server.startServer();
    }
}

======================================

时间: 2024-11-03 21:25:14

Flex和java的socket通信(二)单向通信的相关文章

Flex和java的socket通信(一)连接

服务端:java jdk1.5 (使用工具:eclipse3.2) 客户端:flex 2 (一)连接 目的:实现flex和java的连接 服务端代码:Server1.java =============================================================================== import java.net.*; import java.io.*; public class Server1 { public static void mai

Flex和java的socket通信(四)一个简单的聊天室

服务端:java jdk1.5 使用工具:eclipse3.2 客户端:使用工具flex 2 目的:做一个简单的聊天室,用来实现消息广播. 服务端: 客户端:

Flex和java的socket通信(三)多客户通信

目的:做一个简单的多玩家多线程的猜拳游戏.每个客户机都与服务端的一个套接字进行通信,但是各个客户机之间不进行通信.服务器受到客户机的连接请求时会创建新的套接字并使其与客户机连接.然后启动线程与客户机进行数据交换.套接字管理器是一个Vector,用于管理套接字的个数及其连接状态. 游戏描述:玩家通过向服务器发送0,1,2这个三个数字,用来代表剪刀,锤包,袱.服务器接到信息后会随机产生0,1,2这三个数字的其中的一个.在客户机上通过比较来进行判断输赢. 先放效果图 服务端: 客户端:

java中socket通信问题,急急急

问题描述 java中socket通信问题,急急急 客户端和服务端用socket建立通信进行文件传输,客户端用outputstream将文件写入流中,在服务端用输入流读取.这时候客户端不想传了,断开连接并告知服务器.服务端如何获知客户端已经断开连接了. 解决方案 你客户端断开连接的时候进行了哪些操作?想想这些操作会对服务器端产生什么影响呗· 解决方案二: 服务端一直在循环监听是否有客户端连接,并不会知道某个客户端已经断开.建议客户端断开之前先执行某条协议,服务器收到这条协议便知道你要断开咯

php与java通过socket通信的实现代码_php实例

demo实现的简单功能是,接受PHP端写入的字符串,然后原样返回给输出端.代码如下: 复制代码 代码如下: import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOException{   System.out.println("Server started !\n");   ServerSocket server=new Ser

Java Web项目中使用Socket通信多线程、长连接的方法_java

很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接如一个硬件设备,通过tcp通信,获取设备传上来的数据,并对数据做回应. 先看一下web的监听代码: import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class

java socket通信,字节丢失问题

问题描述 java socket通信,字节丢失问题 请教高手一个问题: 我现在在多台win7和xp的主机上进行java的socket通信,主机间的源代码是通过svn同步,肯定完全一样,现在问题是(以下测试的socket通信文件完全一样):两台xp主机间通信完全没有问题,xp往win7发送也没有问题 问题出在:当win7往xp发送数据时,就会丢字节,在xp上最多接收8755个字节(接收缓冲区足够大),这样该如何解决,有没有哪位也碰到过同样的问题?麻烦指点下... 解决方案 是必现的吗......?

java与单片机通信问题

问题描述 java与单片机通信问题 我用java写了一个控制单片机的界面,想在电脑上通过点击这个界面上的控件,来控制单片机.比如:我点击"蜂鸣器",那么单片机上的蜂鸣器就叫. 现在的问题是:不能解决java怎么利用串口和单片机进行通信.求大虾指点指点.谢谢啦 解决方案 首先你必须得懂java怎么通过串口通信,否则一切都是白谈. 其次设计通信协议,比如上位机发送0x01,表示要蜂鸣器响一下:然后单片机通过串口中断获取到这个0x01. 之后单片机控制蜂鸣器响就行了. 解决方案二: java

java-JAVA多线程Socket通信时遇到的问题???

问题描述 JAVA多线程Socket通信时遇到的问题??? 实验过程中,服务器和客户端都能连接上了,但是服务器就是收不到客户端发来的字符串. 再贴一下代码: //Mult.java package t14_chapter; import java.io.*; import java.net.*; class Mult extends Thread{ private Socket socket; private BufferedReader in; private PrintWriter out;