Socket中的面向连接
来源:互联网 发布:手机淘宝招牌尺寸 编辑:程序博客网 时间:2024/06/06 08:41
课堂练习的小程序之人机对话,保存在此~~~
服务器:
package jiqiren;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
public class Server {
public static void main(String args[]) {
Map userMap = new HashMap();
userMap.put("你好", "你也好");
userMap.put("你吃早饭了吗?", "我吃过了,你呢?");
userMap.put("我没有吃呢", "那我请你吃吧");
userMap.put("好啊", "你吃什么呢?");
userMap.put("我吃鸡蛋", "就吃这么点啊");
userMap.put("我减肥呢", "哈哈");
boolean f = false;
InputStream is = null; OutputStream os = null;
try {
ServerSocket s = new ServerSocket(8888);
System.out.println("服务器开始运行!!!");
while (true) {
Socket s1 = s.accept();
is = s1.getInputStream();
os = s1.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
//自定义代码
do{
String talk = dis.readUTF();
dos.writeUTF("机器人说:" + userMap.get(talk) );
}while(!f);
//****
dos.close();
s1.close();
}
}catch (IOException e) {
e.printStackTrace();
System.out.println("程序运行出错:" + e);
}
}
}
客户
package jiqiren;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ConnectException;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String args[]) {
String f = "y";
String re;
InputStream is = null;
OutputStream os = null;
Scanner sc = new Scanner(System.in);
try {
Socket socket = new Socket("127.0.0.1", 8888);//开启
is = socket.getInputStream();
os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
//自定义代码
do{
System.out.print("我说:");
String ss = sc.next();
dos.writeUTF(ss);
String s = dis.readUTF();
if(s!=null);
{
System.out.println(s);
System.out.println("还要继续交谈吗?(y/n)");
re = sc.next();
}
}while(f.equals(re));
//*******
dos.close();
dis.close();
socket.close();
} catch (ConnectException connExc) {
connExc.printStackTrace();
System.err.println("服务器连接失败!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
- Socket中的面向连接
- TCP面向连接Socket
- 面向连接的Socket编程
- TCP(面向连接)的socket编程
- 面向连接的Socket编程步骤
- Linux - 面向连接的socket通信流程
- TCP(面向连接)的socket编程
- UDP(面向无连接)的socket编程
- 基于TCP(面向连接)的socket编程
- socket之面向连接编程(TCP)
- 基于面向连接的socket编程
- Linux socket之二:面向连接的socket通信实现
- Linux socket之二:面向连接的socket通信实现
- socket中的短连接与长连接
- socket中的短连接与长连接
- socket中的短连接与长连接
- Berkeley Socket工作过程(面向连接&无连接)
- 基于面向连接和无连接的socket编程
- Git的Patch功能(转)
- Difference between FieldEdit and FieldChange events
- jQuery仿淘宝商城天猫鼠标移动过去,透明度降低
- MFC中如何修改应用程序(xx.exe)的图标
- ubuntu 10.04安装kscope
- Socket中的面向连接
- Oracle 建立表空间
- 5折限时抢购移动开发者大会门票!
- 每天花点时间投资于你最有价值的资产——你自己
- emacs如何显示行号
- 基金强力介入移动互联网板块
- iPhone下xib文件批量转换成iPad下xib文件
- [下载]Rootkits_Windows内核的安全防护
- 顺序存储结构线性表基本操作 纯C语言实现