当前位置:  技术问答>java相关

高手帮我写一段简单的Socket客户端代码 100分

    来源: 互联网  发布时间:2015-05-17

    本文导语:  很简单的 只需要连接IP地址192.1.1.66  port:80 发送数据:"abcdefg" 接受服务器端反馈数据 判断服务端是否有返回数据     如果有则输出反馈数据     如果无则报告没有返回 我急用,拜托啦 | ...

很简单的

只需要连接IP地址192.1.1.66  port:80
发送数据:"abcdefg"
接受服务器端反馈数据
判断服务端是否有返回数据
    如果有则输出反馈数据
    如果无则报告没有返回

我急用,拜托啦

|
给你一个实例,很简单的,端口和ip对照改就是了
要回要发随便修改:

Java中的网络编程是一个很重要的部分,也是其编程优越性的地方之一。在

Java中有一个专门的Java.net类库来管理网络编程的有关方法。 
  下面先介绍在Java中怎样用socket进行客户与服务器通信。最后再介绍

一个一个最简单的通话程序。 

一.怎样用socket进行客户与服务器通信 
  在Java中用socket进行客户/服务器之间的通信编程。Socket是两个实体

之间进行通信的有效端点。通过socket可以获得源IP地址和源端口、终点IP

地址和终点端口。用户可以将多个socket连入同一个端口,以便对于单个端

口可以有多个连接。通过socket客户/服务器编程可以创建一个能被许多人使

用的分布式程序,并且所有客户均可以用统一的前端进行工作,并与服务器

进行通信。 
  要想与服务器通信必须具备三个条件:服务器程序、客户程序和连接它

们的socket程序。这三个部分缺一不可。但是,客户与服务器之间的通信有

很多的方式,其中另一个方法是把客户作为索取者,把服务器作为给予者。

下面我们看一看Java的服务器编程。 
  在Java中,服务器有3个主要的功能: 
  1.在Java.net类库中通过构造一个ServerSocket类的实例使服务器能够

检测到指定端口的信息。用ServerSocke中的accept()方法可以使服务器检测

到指定端口的活动。另外,服务器还负责检测要求与它连接的客户。 
·Socket类的实例代表客户与服务器连接成功。通过编程可以使多个用户通

过同一个端口与服务器相连,其中都是Socket 类的实例。 
  2.可以分别用Socket类的getInputStream()和getOutStream()方法来发

送和捕捉数据。其使用方法如下: 

  try{ 
    ServerSocket myServerSocket=new ServerSocket(100); 
    Socket my100Socket=myServerSocket.accept(); 
  }catch(Exception e){} 

  在上面的代码中,首先构造一个ServerSocket类的实例,并传递给它一

个整数作为服务器指定可以使用的给定端口,如下: 

  ServerSocket myServerSocket=new ServerSocket(100); 

  在Java程序中如果每次构造ServerSocket时都能保持捕捉异常事件,则

就随时指定了准备使用的端口。下面的代码使用accept()方法来检测端口的

活动。 

  Socket my100Socket=myServerSocket.accept(); 

  Accept()方法直到接收到用户的连接请求,才继续执行中断的执行程序

。一旦客户的连接成功,my100Socket就代表该连接,并且可以发送和接收数

据。 
最后,我们看一看客户是怎样请求连接的。其连接方法如下: 

  try{ 
    Socket mySocket=new Socket("www.cpcw.com",100); 
  }catch(Exception e ){} 

  通过上面的代码可能看出,也是通过Socket类来实现的。下面我们通过

一个网络编程的实例来说明如何进行网络通信。 

二.一个最简单的通话程序 

通话器服务器: 
import java.net.*; 
import java.io.*; 
import java.lang.*; 

public class myserver{ 
public static void main(String args[]){ 
ServerSocket server; 
Socket socket; 
String s; 
InputStream Is; 
OutputStream Os; 
DataInputStream DIS; 
PrintStream PS; 

try{ 
//在端口4321注册服务 
server=new ServerSocket(4321); 
socket=server.accept();//监听窗口,等待连接 

System.out.println("server ok"); 
System.out.println("***********************************************

*"); 
System.out.println(""); 

//获得对应Socket的输入/输出流 
Is=socket.getInputStream(); 
Os=socket.getOutputStream(); 
//建立数据流 
DIS=new DataInputStream(Is); 
PS=new PrintStream(Os); 
DataInputStream in=new DataInputStream(System.in); 
while(true){ 
System.out.println(""); 
System.out.println("please wait client's message..."); 
System.out.println(""); 
s=DIS.readLine(); //读入从client传来的字符串 
System.out.println("client said:"+s); //打印字符串 
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 
System.out.print("you say:"); 
s=in.readLine(); //读取用户输入的字符串 
PS.println(s); //将读取得字符串传给client 
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 



//关闭连接 
DIS.close(); //关闭数据输入流 
PS.close(); //关闭数据输出流 
Is.close(); //关闭输入流 
Os.close(); //关闭输出流 
socket.close(); //关闭sockey 

catch(Exception e){ 
System.out.println("Error:"+e); 





通话器客户端 
import java.net.*; 
import java.io.*; 
import java.lang.*; 

public class myclient{ 
public static void main(String args[]){ 
if (args.length

    
 
 

您可能感兴趣的文章:

  • 请问诸位高手:如何在服务器上得到正在连接的客户端IP??
  • 客户端JavaScipt对servlet的调用问题。各位高手请进!!!
  • 请问关于socket客户端因事件启动新线程的问题.高手请进
  • 注意了!!100分求购java Telnet客户端代码!!!高手指点同样给分!!
  • 在AIX上安装了MAGIC++,客户端调试时报/bin/sh:gdb not found,请高手指教
  • 请问高手,我在java applet中有 密钥 ,如何不给客户端用反编译或其他方法知道我的密钥??
  • 请问各位高手,rmi和ejb有什么关系。开发客户端为javaapplet的多层结构系统怎样用到他们???
  • linux 验证客户端登录 socket得不到数据!! 急求高手帮忙!!!
  • EJB客户端事物处理的问题(高手熟手一定来看看)
  • 为什么SOCKET编程时遇到这么奇怪的问题, acceptt接受客户端时总是返回-1,请高手指教,急!!!!!!!!!!!!!!
  • jsp下载文件时文件名到客户端时乱码?就是保存的时候,望高手指点!
  • 求高手简答,ftp客户端问题,程序贴在这里。
  • 多客户端Socket的select问题,高手帮忙!
  • 一个简单的服务器 客户端代码 请高手看下 在线等
  • 怎样固定JTabel中的列(column),而不让客户移动?高手快来!!!
  • 如何在服务端控制客户连接,请高手指点!
  • 请问高手,有没有办法可以控制文件的下载?下载文件,一般通过地址链直接链接过去就可以下载,但有些文件是要某种条件下才可以让客户下载,如
  • 我正在作一个简单的telnet客户端的程序,我的DataInputStream的in.readLine()不对?十万火急!!请高手点拨!!!!另外,为什么我只能给29分,本来我给的100分的!?
  • 一个简单的SOCKET程序, 可服务端不能读客户端的数据,请高手指点!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问高手:Ctrl+Alt+F1~F8可以切换虚拟终端,这个代码是在哪儿实现的?我搞不懂,最好指点源代码大概位置。
  • 想成为java高手必须读jdk源代码吗?
  • 请高手们解惑,关于源代码
  • 求助 ==> 代码移殖:从Linux到的Windows,请高手指点一二,谢谢啦
  • 请高手帮我解释一下这段代码!!!
  • shell 编程 从0到10求和 ,代码有错,请高手看看
  • 各路JAVA高手们,能否给我一个用JAVA写的简单聊天室代码?
  • 用rose试图生成java代码,提示如下错误,求教高手!
  • 高分寻求JSP/Servlet写的聊天室源代码?请各位高手帮忙!
  • 急需关于linux多线程的代码工程实例-高手请进啊
  • RedHat 7.2的源代码在哪里?各位高手有的话,麻烦提供一下
  • 我在JBotton中怎么关闭本JFram?---请高手指教,最好给个代码!
  • 高手看看这段代码错在哪里
  • 请路过的高手指点什么地方可以找到LDAP原代码?
  • 关于socket通信,C的代码,有个问题请教高手!
  • 高手进,只求思路,不求代码!
  • 有那些高手将linux内核源代码完整的看过一遍啊
  • 100分相送能帮我从LINUX下提取ISO9660的源代码的高手
  • 现急需bmp文件转换成jpg文件的java源代码,请高手们帮帮忙,分数可再加。
  • 学习design pattern,苦于没有java代码的例子,高手指点
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3