这两个程序怎么改,建立连接,端口为8888

问题描述

packagecom.shengsiyuan.server;importjava.awt.Color;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.ServerSocket;importjava.net.Socket;importjava.util.ArrayList;importjavax.swing.JOptionPane;importcom.shengsiyuan.bean.Users;importcom.shengsiyuan.db.UsersDB;importcom.shengsiyuan.util.XMLUtil;publicclassServerConnectionextendsThread{privateServerserver;privateServerSocketserverSocket;privateInputStreamis;privateOutputStreamos;publicServerConnection(Serverserver,intport){try{this.server=server;this.serverSocket=newServerSocket(port);//下面代码不能放到上面一行代码之前//因为服务器有可能抛出异常//如果放在上面,则发生异常也会导致组件发生改变,与实际情况不同this.server.getLabel2().setText("运行");this.server.getLabel2().setForeground(Color.GREEN);this.server.getButton1().setEnabled(false);this.server.getTextField().setEnabled(false);//组件不能再修改了}catch(IOExceptione){e.printStackTrace();JOptionPane.showMessageDialog(this.server,"端口号被占用!","警告",JOptionPane.ERROR_MESSAGE);}}@Overridepublicvoidrun(){while(true){try{Socketsocket=this.serverSocket.accept();this.is=socket.getInputStream();this.os=socket.getOutputStream();byte[]buffer=newbyte[5000];intlength=is.read(buffer);//从客户端发送的信息Stringxml=newString(buffer,0,length);//判断xml数据类型Stringtype=XMLUtil.extractType(xml);//1代表注册用户名是否重复if("1".equals(type)){//客户端发过来的判断用户名是否注册的信息(username)Stringusername=XMLUtil.extractUsername(xml);StringregisterResult="no";UsersDBuserDB=newUsersDB();ArrayListlist=userDB.getAllUsers();for(inti=0;i<list.size();i++){Usersuser=(Users)list.get(i);if(user.getUsername().equals(username)){//已经注册registerResult="yes";}}//构建注册结果xmlStringregisterResultXML=XMLUtil.constructResultXML(registerResult);os.write(registerResultXML.getBytes());}}catch(Exceptione){e.printStackTrace();}}}}这是server所启动的线程packagecom.shengsiyuan.client;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.Socket;importcom.shengsiyuan.util.XMLUtil;publicclassClientConnnection{privateSocketsocket;privateInputStreamis;privateOutputStreamos;StringhostAddress="localhost";intport=8888;//连接服务privatevoidconnectServer(){try{this.socket=newSocket(this.hostAddress,this.port);this.is=socket.getInputStream();this.os=socket.getOutputStream();}catch(Exceptione){e.printStackTrace();}}//发送用户注册信息publicbooleanregistered(Stringusername){try{connectServer();Stringxml=XMLUtil.contructRegisteredXML(username);os.write(xml.getBytes());//向服务器端发送用户判断的注册信息(主要是判断用户名)//读取服务器的响应结果byte[]buffer=newbyte[5000];intlength=is.read(buffer);StringregisterResultXML=newString(buffer,0,length);StringregisterResult=XMLUtil.extractResult(registerResultXML);if("yes".equals(registerResult)){returntrue;}else{returnfalse;}}catch(Exceptione){e.printStackTrace();}returnfalse;}}

解决方案

解决方案二:
该回复于2014-09-22 08:44:52被版主删除
解决方案三:
能告诉我你想改啥吗

时间: 2024-08-03 01:02:20

这两个程序怎么改,建立连接,端口为8888的相关文章

服务器-网络编程中并未建立连接的端口却能往套接字中写,发送数据,困惑

问题描述 网络编程中并未建立连接的端口却能往套接字中写,发送数据,困惑 拜托各位了,碰上一个难以理解的困惑 情况如下 我在qt中编写了一个客户端(抛开qt,也可以理解为别的写的),在这个应用程序中有一个对象是专门用来建立连接并且处理和服务器的相关的通信. 服务器的话是在linux下c写的,简单的可以看做这种模式accept等待连接,连接成功后阻塞读写 while(1) { clientfd = accept(lfd, null, null): printf("new connectn"

数据库连接失败:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)

问题描述 <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-t

mysql数据库-远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上

问题描述 远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上 我是通过远程连接在实验室机房的一台机器(linux操作系统)上,然后在该机器上建立JAVA程序,其中涉及到连接mysql数据库的操作,但是在获取连接时一直提示"Communications link failure",涉及的代码为:connect=DriverManager.getConnection(""jdbc:mysql://localhost:3306/pyq_te

求一个特别简单的安卓小程序 就是点击一个按钮就与IP127.0.0.1 端口8500建立连接

问题描述 求一个特别简单的安卓小程序 就是点击一个按钮就与IP127.0.0.1 端口8500建立连接 就是安卓的socket程序 能与只连接就行 主要我不懂线程有人说不能写到主线程里 解决方案 把网络耗时的操作放到Handler里面,新建线程操作. http://www.cnblogs.com/devinzhang/archive/2011/12/30/2306980.html 解决方案二: sockt()://建立套接字 connect()://连接 send()://发送 recv():/

SQL Server成功与服务器建立连接但是在登录过程中发生错误的快速解决方案_MsSql

最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS下运行的时候,IIS crash.之前的连接是没问题的,后网上找了资料,根据牛人所说的方案解决了. 1. Exception message 已成功与服务器建立连接,但是在登录过程中发生错误. (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确.) ---> System.ComponentModel.Win32Except

建立连接

与数据库建立链接想与DBMS建立一个链接你必须做如下两个工作:(1)加载驱动程序(2)建立链接 加载驱动程序\r 加载驱动程序非常的简单,只需要一句代码.比如你,你想用JDBC-ODBC桥驱动,那么你就写上:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");你的驱动程序文档将会告诉你class name.如果你的class name 是jdbc.DriverXYZ,那么你就把代码换成这样:Class.forName("jdbc.Dri

如何在应用程序中使用JCA连接实现可伸缩性

简介 对企业信息系统 (EIS) 的关系和过程访问的连接管理架构都基于 Java EE Connector Architecture (JCA) 规范.Connection Manager (CM) 将一个应用服务器中的连接加入池中进行管理,既能够管理通过 JCA 规范定义的资源适配器所获取的连接,也能够管理通过 Java 数据库连接 (JDBC) 规范定义的数据源所获取的连接.IBM WebSphere Application Server 支持管理员建立后端连接池,以便在一个应用服务器上共享

用户如何与Oracle数据库服务器建立连接

用户要想使用Oracle数据库,首先要与数据库建立连接.针对数据库连接,Oracle提供了两种解决方式:专用连接和共享连接. 大部分情况下,我们使用专用连接方式.对专用连接来说,用户在客户端启动了一个应用程序,比如SQL*Plus,于是就在客户端本地启 动了一个用户进程.与Oracle服务器成功建立连接以后,就会在数据库服务器端生成一个对应的服务器进程,该服务器进程作为用户进程 的代理 进程,也叫影子进程,从而代替客户端去执行各种命令并将结果返回.也就是说,用户在客户端输入的各种命令,都是通过位

SQL Server 建立连接时出现与网络相关的错误

  在连接SQL Server 2000数据库的时候,出现以下错误: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 在连接SQL Server 2005数据库的时候,提示一个错误!错误信息如下! 在建立与服务器的连接时出错.在连接到 SQL Server 2005