client码,如以下:

  1. import java.io.*;
  2. import java.net.*;
  3. public class DailyAdviceClient {
  4. public void go(){
  5.  
  6. try {
  7. Socket s=new Socket("127.0.0.1",4242);//建立对server的Socket连接
  8. //client从server读取数据
  9. //建立连接到socket上低层输入串流的InputStreamReader
  10. //InputStreamReader是低层和高层串流间的桥梁
  11. //s.getInputStream()从Socket取得输入串流
  12. InputStreamReader streamReader=new InputStreamReader(s.getInputStream());
  13. //建立BufferedReader来读取
  14. BufferedReader reader=new BufferedReader(streamReader);
  15. String adviceString=reader.readLine();
  16. System.out.println("Today you should: "+adviceString);
  17. //client向server发送数据
  18. //创建不带自己主动行刷新的PrintWriter对象。
  19. //假设加入第二个參数true,则为自己主动刷新,不须要写writer.flush()这行代码
  20. PrintWriter writer=new PrintWriter(s.getOutputStream());
  21. writer.println("Hello,I am Client2!");
  22. writer.flush();//刷新发送数据
  23. System.out.println("此套接字连接的远程地址:"+s.getInetAddress().getHostAddress());
  24. System.out.println("此套接字绑定的本地地址:"+s.getLocalAddress().getHostAddress());
  25. System.out.println("此套接字绑定的本地端口:"+s.getLocalPort());
  26. System.out.println("此套接字连接到的远程端口:"+s.getPort());
  27. s.close();//关闭socket
  28. } catch (IOException e) {
  29. // TODO Auto-generated catch block
  30. e.printStackTrace();
  31. }
  32.  
  33. }
  34. public static void main(String[]args){
  35. DailyAdviceClient client=new DailyAdviceClient();
  36. client.go();
  37. }
  38. }

server端代码例如以下:

  1. import java.io.*;
  2. import java.net.*;
  3. public class DailyAdviceServer {
  4. String[] adviceList={"Take smaller bites","One word: inappropriate",""
  5. + "Just for today,be honest","Tell your boss"};
  6. public void go(){
  7.  
  8. try {
  9. //服务器应用程序对特定port创建出ServerSocket对象
  10. //这会让服务器应用程序监听来自4242port的client请求
  11. ServerSocket serverSocket=new ServerSocket(4242);
  12. //服务器进入无穷循环等待client的请求
  13. while(true){
  14. System.out.println("等待client连接...");
  15. //接收到用户连接请求后。此方法会返回一个socket。以便于client通信
  16. //此socket的port号和serverSocket的port号不同
  17. Socket sock=serverSocket.accept();//此方法会堵塞直到有连接请求到达
  18. System.out.println("此套接字连接的地址:"+sock.getInetAddress().getHostAddress());
  19. System.out.println("此套接字绑定的本地地址:"+sock.getLocalAddress().getHostAddress());
  20. System.out.println("此套接字绑定的本地port:"+sock.getLocalAddress());
  21. System.out.println("此套接字连接到的远程port:"+sock.getPort());
  22. //服务器向client发送数据
  23. PrintWriter writer=new PrintWriter(sock.getOutputStream());
  24. String adviceString=getAdvice();
  25. writer.println(adviceString);
  26. writer.flush();
  27. System.out.println(adviceString);
  28. //服务器接收client发送的数据
  29. InputStreamReader streamReader=new InputStreamReader(sock.getInputStream());
  30. BufferedReader reader=new BufferedReader(streamReader);
  31. String adviceStringREC=reader.readLine();
  32. System.out.println("REC: "+adviceStringREC);
  33.  
  34. }
  35. } catch (IOException e) {
  36. // TODO Auto-generated catch block
  37. e.printStackTrace();
  38. }
  39.  
  40. }
  41. public String getAdvice(){
  42. int random=(int)(Math.random()*adviceList.length);
  43. return adviceList[random];
  44.  
  45. }
  46. public static void main(String []args){
  47. DailyAdviceServer server=new DailyAdviceServer();
  48. server.go();
  49. }
  50. }

版权声明:本文博客原创文章。博客,未经同意,不得转载。

socket示例代码演示程序(螺纹)的更多相关文章

  1. C# WebSocket 服务端示例代码 + HTML5客户端示例代码

    WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...

  2. python开源项目及示例代码

    本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...

  3. C/C++ 开源库及示例代码

    C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...

  4. C#异步Socket示例

    C#异步Socket示例 概要 在C#领域或者说.net通信领域中有着众多的解决方案,WCF,HttpRequest,WebAPI,Remoting,socket等技术.这些技术都有着自己擅长的领域, ...

  5. 看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)

    在我的 单点登录SSO示例代码 一文中,强烈不建议部署HTTP的SSO服务站点. 在此写个基于网络包嗅探的HTTP会话劫持程序,给大家一个直观的危害性展示. 示例中,我在一台Mac上登录58同城,被另 ...

  6. python开源项目及示例代码(转)

    本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...

  7. 网络传输 buf 封装 示例代码

    网络传输 buf 封装 示例代码 使用boost库 asio // BufferWrapTest.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h&quo ...

  8. netty-socketio 示例代码

    socket.io是一个不错的websocket项目,github上有它的java实现:netty-socketio 及 示例项目 netty-socketio-demo,基本上看看demo示例项目就 ...

  9. MySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码 这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 一.数据备份 1.使用 ...

随机推荐

  1. UIPinchGestureRecognizer 的scale使用

    使用 UIPinchGestureRecognizer 手势可以放大或缩小UIImageView视图.放大或缩小的值是根据 UIPinchGestureRecognizer 的scale决定.这个值在 ...

  2. Objective-C类的使用

    Objective-C教程的例题: // // main.m // test // // Created by liwei on 14-10-28. // Copyright (c) 2014年 li ...

  3. C++经典面试题(二)

    近期看一些面试题,认为假设自己被问到了,并不能非常利落的回答出来. 一是从来没有这个意识,二是没有认真的梳理下. 以下对这些题做出分析,哈!个人能力有限,当中难免有疏漏,欢迎大家补充咯. 11.引用与 ...

  4. POJ 3264-Balanced Lineup(段树:单点更新,间隔查询)

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 34522   Accepted: 16224 ...

  5. Form表单中的action路径问题

    今天刚接触web,在用jsp和servlet做一个简单的登陆的时候在Form表单action属性和method属性的一些问题:  我遇到的是Form表单提交到servelet处理时遇到的问题:  (1 ...

  6. 解决android3.0版本号以上应用接收不到开机广播问题

    如今是2014-07-16 下午15:27. 好久没写过东西,突然间灵感喷发想写点东西(事实上是刚刚弄好了一个棘手的问题,自豪中..呵呵呵呵 我牛掰).废话不多说,进入正题. 不知道你们又没有碰到这问 ...

  7. android下获取无线wif信号、ssid、MAC等操作类

    一个android下获取无线wif信号.ssid.MAC等操作的类. WifiAdmin.java package com.afu; import java.util.List; import and ...

  8. A*算法进入

    作者文章链接:http://www.policyalmanac.org/games/aStarTutorial.htm 启示式搜索:启示式搜索就是在状态空间中的搜索对每个搜索的位置进行评估,得到最好的 ...

  9. IT忍者神龟之使用 PowerDesigner

    1. 启动 PowerDesigner 新建物理数据模型 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmlweWhk/font/5a6L5L2T/fon ...

  10. CentOS构造SNMP

    <span style="font-size:14px;">本文介绍怎样在CentOS环境下配置一个简单的SNMP服务</span> 软件安装 切换到系统管 ...