socket实现
来源:互联网 发布:下列网络系统安全原则 编辑:程序博客网 时间:2024/06/06 00:30
客户端:
public class TestScoketActivity extends Activity {
/** Called when the activity is first created. */
private Button btn;
private EditText text;
private MyHandler handler;
private TextView content;
private Socket socket = null;
private DataInputStream input = null;
private DataOutputStream out = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.button1);
text = (EditText) findViewById(R.id.editText1);
content = (TextView) findViewById(R.id.text);
btn.setOnClickListener(new BtnListener());
handler=new MyHandler();
}
class BtnListener implements OnClickListener {
@Override
public void onClick(View v) {
new MyUserThread().start();
}
}
class MyUserThread extends Thread {
public void run() {
try {
System.out.println("开始聊天");
socket = new Socket("192.168.1.100", 2222);
out = new DataOutputStream(socket.getOutputStream());
input = new DataInputStream(socket.getInputStream());
out.writeUTF(text.getText().toString());
out.flush();
String msg = "";
if ((msg = input.readLine()) != null) {
System.out.println(msg);
Toast.makeText(TestScoketActivity.this, msg, 3000).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
Bundle bundle = msg.getData();
String str = bundle.getString("user");
if (str.equals("")) {
content.setText(str);
}
}
}
服务端
public class Service {
private ServerSocket ss;
private Socket socket;
private DataInputStream input;
private DataOutputStream out;
private String[]msgs;
private Map<String,Object>usersMap=new HashMap<String,Object>();
public Service(){
new ServiceThread().start();
}
//连接服务器
class ServiceThread extends Thread{
public void run(){
try {
ss=new ServerSocket(2222);
System.out.println("服务已开启:");
while(true){
socket=ss.accept();
System.out.println(socket);
input=new DataInputStream(socket.getInputStream());
System.out.println(socket.getInetAddress());
out=new DataOutputStream(socket.getOutputStream());
String msg="";
if((msg=input.readUTF())!=null){
if(!"".equals(msg)){
msgs=msg.trim().split("@#");
usersMap.put(msgs[3], socket);
Iterator<String> userNames=usersMap.keySet().iterator();
while (userNames.hasNext()) {
String userName=userNames.next();
Socket s=(Socket) usersMap.get(userName);
DataOutputStream outMsg=new DataOutputStream(s.getOutputStream());
//outMsg.writeUTF("你好");
outMsg.writeChars("你好----");
System.out.println("发送给:"+msgs[1]);
System.out.println("消息:"+msgs[2]);
System.out.println("发送人"+msgs[3]);
System.out.println("所有人接收:"+msgs[0]);
}
}
}
// out.writeUTF("连接成功");
out.flush();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
- 【socket】php实现socket
- 【socket】php实现socket
- socket实现
- socket实现
- Socket API实现PING
- socket类实现发送
- SOCKET代理实现方法
- SOCKET代理实现方法
- SOCKET代理实现方法
- Socket实现远程唤醒
- AS3 实现socket连接
- SOCKET代理实现方法
- SOCKET代理实现方法
- SOCKET代理实现方法
- SOCKET代理实现方法
- SOCKET代理实现方法
- SOCKET代理实现方法
- SOCKET代理实现方法
- static使用总结
- 集合框架中的工具类
- Hibernate标识符属性(主键)生成策略全析
- ajax返回乱码处理方法
- 面试中的Singleton
- socket实现
- HTTP method GET is not supported by this URL
- 无法打开Windchill中的模型(下载失败)
- 四叉树管理场景
- 分享下自己的lucene工具类
- asp.net 上传文件并将路径写入数据库
- poj1018 - Communication System
- boost高并发网络框架+线程池
- shell 编程 之程序监控