android与PC用socket通信

写了一个小的测试程序,android手机和PC进行通信。
服务器(PC)端代码:
public class SimpleServer
{
public static void main(String[] args)
throws IOException
{
// 创建一个ServerSocket,用于监听客户端Socket的连接请求
ServerSocket ss = new ServerSocket(30000); //①
// 采用循环不断接受来自客户端的请求
while (true)
{
// 每当接受到客户端Socket的请求,服务器端也对应产生一个Socket
Socket s = ss.accept();
OutputStream os = s.getOutputStream();
os.write("您好,您收到了服务器的新年祝福!\n"
.getBytes("utf-8"));
// 关闭输出流,关闭Socket
os.close();
s.close();
}
}
}

客户端(android)代码:
public class SimpleClient extends Activity
{
EditText show;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
show = (EditText) findViewById(R.id.show);
new Thread()
{
@Override
public void run()
{
try
{
// �������ӵ�Զ�̷�������Socket
Socket socket = new Socket("192.168.0.100" , 30000); //��
// ��Socket��Ӧ����������װ��BufferedReader
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
// ������ͨIO����
String line = br.readLine();
show.setText("���Է���������ݣ�" + line);
// �ر���������socket
br.close();
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}.start();
}
}

先启动PC机上的服务端,再启动安卓手机客户端,结果客户端无反应。
初步判断应该是客户端socket构造函数里的第一个参数IP地址错误,请问这个地址应该填公网地址还是本地局域网地址?(网络环境:路由器宽带接入,PC有线接路由器,Android无线连WIFI)

3个回答

首先要确认pc和手机在同一个局域网,然后都是用本地ip。
Good luck!

woshichym
woshichym 已解决,两位说的都正确,就给最先回复的啦,谢谢!
5 年多之前 回复

肯定是局域网啊,你这手机和PC实际都是接在路由器上面的

woshichym
woshichym 那连不通是IP客户端SOCKET的IP配置错误吗?是否应该配成本地局域网IP?
5 年多之前 回复

ping得通就肯定可以

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android应用Socket与PC通信失败

服务器端 ``` import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class TCPDesktopServer implements Runnable{ public static final String SERVERIP = "192.168.155.1"; public static final int SERVERPORT = 1920; public void run() { try { System.out.println("S: Connecting..."); ServerSocket serverSocket = new ServerSocket(SERVERPORT); while (true) { Socket client = serverSocket.accept(); try { BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); String str = in.readLine(); System.out.println("S: Received: '" + str + "'"); } catch(Exception e) { System.out.println("S: Error"); e.printStackTrace(); } finally { client.close(); System.out.println("S: Done."); } } } catch (Exception e) { System.out.println("S: Error"); e.printStackTrace(); } } public static void main (String a[]) { Thread ServerThread = new Thread(new TCPDesktopServer()); ServerThread.start(); } } ``` 客户端、 ``` package com.ldgforever.controlbywifi; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class LightControlActivity extends Activity { private Button mBtnSend; private static final String TAG = "com.ldgforever.controlbywifi"; private String mIPAdress; private int mPortNumber; String ip="192.168.155.1"; int port=1920; Socket socket = null; private String mSendMsg = "test"; public static final String EXTRA_RECEIVE_IP = "com.ldgforever.controlbywifi.receive_ip"; public static final String EXTRA_RECEIVE_PORT = "com.ldgforever.controlbywifi.receive_port"; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.light_control); mIPAdress = getIntent().getStringExtra(EXTRA_RECEIVE_IP); mPortNumber = Integer.parseInt(getIntent() .getStringExtra(EXTRA_RECEIVE_PORT)); mBtnSend = (Button)findViewById(R.id.send_data); mBtnSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SetOnClick(); } }); } private void SetOnClick() { // TODO Auto-generated method stub try { if(!TextUtils.isEmpty(mSendMsg)) SendMsg(ip,port,mSendMsg); else { Toast.makeText(LightControlActivity.this,"msg is EMPTY!!", Toast.LENGTH_LONG).show(); } } catch (UnknownHostException e) { // TODO Auto-generated catch block Toast.makeText(LightControlActivity.this,"!UnknownHostException!", Toast.LENGTH_LONG).show(); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block Toast.makeText(LightControlActivity.this,"!IOException!", Toast.LENGTH_LONG).show(); e.printStackTrace(); }catch (Exception e) { //每次都断在这里 // TODO Auto-generated catch block Log.e(TAG, "Exception"); Toast.makeText(LightControlActivity.this,"!Exception!", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } public void SendMsg(String ip,int port,String msg) throws UnknownHostException, IOException { try { socket = new Socket(); socket=new Socket(ip,port); PrintWriter writer = new PrintWriter(new BufferedWriter (new OutputStreamWriter(socket.getOutputStream()))); // BufferedWriter writer=new BufferedWriter(new OutputStreamWriter // (socket.getOutputStream())); // writer.write(msg); writer.println(msg); writer.flush(); writer.close(); socket.close(); } catch(UnknownHostException e) { Log.e(TAG, "UnknownHostException"); e.printStackTrace(); } catch (IOException e) { Log.e(TAG, "IOException"); e.printStackTrace(); } } } ``` 是通过mainactivity打开这个activity 网络权限添加了 不知道为什么客户端单拿出来写一个edittext 和button的发送小程序就好使

pc机与android手机socket通讯的问题

**本人最近想做一个上微机在pc机上控制下位机(单片机)!同时这个上位机具有socket通信的功能能通过安卓手机远程控制上位机向单片机发送指令,现在pc机上的上位机做好了,然后使用winsocket服务端程序做好了!手机端安卓socket客户端!现在问题就是这两个socket之间好像不能通信啊!在电脑上使用java写的服务端可以和安卓手机通信!** **我想问一下在电脑上用C语言和win api写的服务端有么有办法和安卓客户端的socket通信!有的话,能否指教一下如何写的,用的什么函数?谢谢**

pc作为服务端,android端作为客户端,如何通过USB进行socket通信。

pc作为服务端,android端作为客户端,如何通过USB进行socket通信。 大概思路是什么

Android 用socket实现语音通信

Android 用socket实现语音通信,最好能是跟server一起,使其能长连接

android socket通信,,手机在3g网下与pc通信,手机与手机之间通过socket通信

现在有个项目中是需要用gprs模块与手机之间进行通信,我在实验的时候是通过手机与pc机之间通信以及手机与手机之间通信来实验,在同个局域网下我用手机与pc之间进行socket通信是可以的,但是我用百度查寻pc的公网ip地址然后与手机通信就不行了。。现在请求大神的帮助呀。。

PC_android使用socket通信,要求PC服务端发送图片给手机客户端,并在手机显示

本人根据“http://sishuok.com/forum/posts/list/1995.html”此网址,做了一个socket通信的例子,但是通信成功了,图片在手机中显示不出来,求解答

android通过socket与电脑通信

DatagramPacket p = new DatagramPacket(msgbyte,msg_length,local,port); try{ s.send(p); }catch(IOException e){ e.printStackTrace(); } 用模拟器运行正常,真机测试异常。异常代码段锁定在发送这里,但是看不出有什么问题,求大神

android模拟器与pc的相互通信

我现在再能实现模拟器联系pc,pc作为服务器被动的做出反应。不能实现pc发消息给模拟器。那要如何实现相互的通信呢 代码如下: ``` package com.example.socket_android; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.StrictMode; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; /** * 测试Android客户端与PC服务器通过socket进行交互 * 客户端:把用户输入的信息发送给服务器 * @author Ameyume * */ public class MainActivity extends Activity { private static final String TAG = "Socket_Android"; private EditText mEditText = null; private TextView tx1 = null; private Button mButton = null; @SuppressLint("NewApi") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //强制占用ui if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } mButton = (Button)findViewById(R.id.button1); mEditText=(EditText)findViewById(R.id.editText1); //mEditText = (EditText)findViewById(R.id.editText1); tx1 = (TextView)findViewById(R.id.textView1); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub setTitle("测试Socket连接"); Socket socket = null; try { /* 指定Server的IP地址,此地址为局域网地址,如果是使用WIFI上网,则为PC机的WIFI IP地址 * 在ipconfig查看到的IP地址如下: * Ethernet adapter 无线网络连接: * Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.1.100 */ InetAddress serverAddr = InetAddress.getByName("192.168.1.225");// TCPServer.SERVERIP Log.d("TCP", "C: Connecting..."); // 应用Server的IP和端口建立Socket对象 socket = new Socket(serverAddr, 51706); String message = "---Test_Socket_Android---"; Log.d("TCP", "C: Sending: '" + message + "'"); // 将信息通过这个对象来发送给Server PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())), true); // 把用户输入的内容发送给server String toServer = mEditText.getText().toString(); Log.d(TAG, "To server:'" + toServer + "'"); out.println(toServer); out.flush(); // 接收服务器信息 BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream())); // 得到服务器信息 String msg = in.readLine(); Log.d(TAG, "From server:'" + msg + "'"); // 在页面上进行显示 tx1.setText(msg); } catch(UnknownHostException e) { //Log.e(TAG, "192.168.1.100 is unkown server!"); Log.e(TAG, "192.168.1.225 is unkown server!"); } catch(Exception e) { e.printStackTrace(); } finally { try { socket.close(); } catch(Exception e) { e.printStackTrace(); } } } }); } } ``` ``` <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="#aacccc" tools:context="com.example.socket_android.MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView4" android:layout_marginTop="40dp" android:layout_toRightOf="@+id/textView4" android:background="#aaccff" android:text="发送" /> <TextView android:id="@+id/textView1" android:background="#aaccff" android:layout_width="match_parent" android:layout_height="20dp" android:layout_alignLeft="@+id/textView4" android:layout_below="@+id/textView4" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="28dp" android:text="@string/hello_world" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="20dp" android:layout_alignRight="@+id/textView2" android:layout_below="@+id/textView2" android:layout_marginRight="22dp" android:layout_marginTop="74dp" android:gravity="center" android:text="指令" /> <TextView android:id="@+id/textView4" android:layout_width="60dp" android:layout_height="20dp" android:layout_alignLeft="@+id/textView3" android:layout_below="@+id/textView3" android:layout_marginTop="25dp" android:text="返回结果:" /> <EditText android:id="@+id/editText1" android:background="#aaccff" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/textView3" android:layout_alignBottom="@+id/textView3" android:layout_alignRight="@+id/textView1" android:layout_toRightOf="@+id/textView4" android:ems="10" /> </RelativeLayout> ``` ``` //package Project1; ///** // * Class1 的摘要说明。 // */ //public class Class1 //{ // public Class1() // { // // // // TODO: 在此处添加构造函数逻辑 // // // } //} import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * 测试Android客户端与PC服务器通过socket进行交互 * 服务器端:接收客户端的信息并回送给客户 * @author Ameyume * */ public class Server implements Runnable { //public static final String SERVERIP = "192.168.1.100"; public static final String SERVERIP = "192.168.1.225"; public static final int SERVERPORT = 51706; public void run() { try { System.out.println("S: Connecting..."); ServerSocket serverSocket = new ServerSocket(SERVERPORT); while (true) { // 等待接受客户端请求 Socket client = serverSocket.accept(); System.out.println("S: Receiving..."); try { // 接受客户端信息 BufferedReader in = new BufferedReader( new InputStreamReader(client.getInputStream())); // 发送给客户端的消息 PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(client.getOutputStream())), true); System.out.println("S: 111111"); String str = in.readLine(); // 读取客户端的信息 int j; if (str.equals("a")) { j = 1; } else if (str.equals("b")) { j = 2; } else if(str.equals ("1")) { j = 3; } else { j=4; } switch (j) { case 1: str = "a1"; break; case 2: str = "a2"; break; case 3: str = "a3"; break; case 4: str = "a4"; break; case 5: str = "a5"; break; case 6: str = "a6"; break; } System.out.println("S: 222222"); if (str != null) { // 设置返回信息,把从客户端接收的信息再返回给客户端 out.println("You sent to server message is:" + str); out.flush(); // 把客户端发送的信息保存到文件中 File file = new File("C://android.txt"); FileOutputStream fops = new FileOutputStream(file); byte[] b = str.getBytes(); for (int i = 0; i < b.length; i++) { fops.write(b[i]); } System.out.println("S: Received: '" + str + "'"); } else { System.out.println("Not receiver anything from client!"); } } catch (Exception e) { System.out.println("S: Error 1"); e.printStackTrace(); } finally { client.close(); System.out.println("S: Done."); } } } catch (Exception e) { System.out.println("S: Error 2"); e.printStackTrace(); } } public static void main(String[] args) { Thread desktopServerThread = new Thread(new Server()); desktopServerThread.start(); } } ```

【新手求教】关于socket外网通信

自己写的基于socket的winform服务器和Android客户端使用TCP通信。实现后像微信朋友圈的那种。 在连入同一个局域网下客户端和服务器可以实现通信,现在我想让外网的客户端也能访问服务器。 由于本人入门没多久,查了些资料,然后准备用花生壳把我连在内网的PC做服务器,连入另一个内网的手机做客户端。花生壳给了我一个域名,我添加映射后在我的PC上添加一个IIS服务,然后别人的PC已经可以访问我的那个域名了。然后我用IP138查那个域名获得了一个IP,就把它设置成客户端要绑定的IP,但是结果客户端连不上。 又百度了一下发现众说纷纭,什么NAT打洞啦,还有说做各种没听说过的测试啦。于是头昏脑胀不知到底该怎么办了。只求有木有大侠做过类似的项目的赐教一些经验心得,本人计算机网络知识少得可怜,给个学习的方向也好,感谢在先!

android 客户端socket接收数据时只能接收到1448个字节

byte[] buffer = new byte[1024 * 101]; while ((length = is.read(buffer)) != -1) { byte[] dataInstream = new byte[length]; System.arraycopy(buffer, 0, dataInstream, 0, length); } ```我在使用socket接收数据的时候,new一个缓冲区然后从输入流中读取数据到缓冲区可读到的数据只有1448个字节而实际服务端发送的字节数据流远远大于1448,困扰了几天了,有人能帮我解决这个问题吗 ```

安卓手机能不能在3G或4G网络下,进行点对点socket通信?

我试过在wifi的情况下,两个安卓手机可以进行点对点通信,但是在3G或4G网时就不行了,想实现通信必须通过pc服务端。 3G或4G网络下,两台安卓手机能否进行socket点对点通信,如果能的话,是用什么办法呢,有什么例子

怎么用Android自带的USB接口实现手机与PC通信

没有接触过usb,不太懂,网上看的资料都是用adb socket实现的,主管说安卓有自带的接口,叫我自己找资料做,我一头雾水,求大神给个思路,求demo

客户端和服务端通过建立socket通信,协议是tcp/ip

有一个问题咨询:一个客户端和一个服务端通过tcp/ip连接(之间建立socket通信),在不断网的情况下,服务端关闭,客户端报警,重新开启服务器,客户端能够重新连接上服务端,但是如果拔掉网线,客户端就连接不上服务端了,但从服务端发送过来的数据还是可以读到,可是从客户端发送的数据不能到达服务端,这是为什么???

手机安卓客户端和电脑服务器进行socket通信,为什么socket不通?

手机安卓客户端和电脑服务器进行socket通信,程序都是java写的,客户端socket函数填的是电脑的外网ip(百度搜出来那个),手机用的是3g信号,但是socket不通。。是ip填错了吗?

pc 通过浏览器与向android传文件

pc与android处在同一个局域网内,我们就可以通过pc端的浏览器向android传文件。类似于wps文件传输等。

各位大神好,请教一个android socket的问题

我目前遇到的问题是这样的:我想实现的功能是PC通过USB线连接到android手机,然后PC作为客户端,手机作为服务端,然后进行socket通信,我实现了一种方法,PC端使用 Java来写,已经成功了,现在我需要PC端需要python来写,就是说PC端用python实现 socket的客户端与手机进行USB通信;目前我也实验的差不多了,但是有个问题是:PC端能够连上服务端,但是数据似乎发布出去,安卓手机端一直卡在readUTF()的地方,但是安卓端可以给PC端回数据,PC端也能接收到android端的数据,附上代码,求大神? PC python 客户端:(我PC端使用了adb forward端口转发) ``` import socket import os from time import sleep from logging import shutdown host='127.0.0.1' port=9000 os.system("adb forward tcp:9000 tcp:9000") sleep(3) while 1: try: cmdstr=raw_input("please input cmd:") s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((host,port)) print "connect success" #s.sendall("asdafaf") #s.settimeout(10) req_msg = b'host:transport-any' s.sendall('%04x' % len(req_msg)) s.sendall(req_msg) #s.settimeout(10) print "send ok" data=s.recv(1024) print data except: os.system('adb start-server') sleep(2) continue os.system("pause") #s.shutdown(2) #s.close() ``` android 服务端 ``` package com.example.server_android; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.Toast; import android.util.Log; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.ServerSocket; import java.net.Socket; public class MainActivity extends Activity { private static final String TAG = "ServerThread"; ServerThread serverThread; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { Toast.makeText(getApplicationContext(), msg.getData().getString("MSG", "Toast"), Toast.LENGTH_SHORT).show(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); serverThread = new ServerThread(); serverThread.start(); } @Override protected void onDestroy() { super.onDestroy(); serverThread.setIsLoop(false); } class ServerThread extends Thread { boolean isLoop = true; public void setIsLoop(boolean isLoop) { this.isLoop = isLoop; } @Override public void run() { Log.d(TAG, "running"); ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(9000); while (isLoop) { Socket socket = serverSocket.accept(); Log.d(TAG, "accept"); DataInputStream inputStream = new DataInputStream(socket.getInputStream()); String msg = inputStream.readUTF(); Log.d(TAG, "Message:"+msg); DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream()); outputStream.writeUTF("Receive OK"); outputStream.flush(); //jelly test begin //outputStream.writeUTF("Receive OK\r"); //jelly test end Message message = Message.obtain(); Bundle bundle = new Bundle(); bundle.putString("MSG", msg); message.setData(bundle); handler.sendMessage(message); socket.close(); } } catch (Exception e) { e.printStackTrace(); } finally { Log.d(TAG, "destory"); if (serverSocket != null) { try { serverSocket.close(); } catch (Exception e) { e.printStackTrace(); } } } } } } ```

安卓前端与PC服务器通过本地WiFi相连,如何做???有无源代码啊,求求求

大四毕设狗,在做一个APP,现在不知道安卓前端如何与PC服务器通过本地WiFi相连通信,安卓前端用的eclipse,服务器端用的myeclipse,谢谢大神指导啊,拜托拜托

服务器为jsp编写,两个android客户端通过服务器实现通信的问题

1.客户端发送登录请求后,服务端将对它们的对应id和response放入一个map中 2.客户端通信时将要通信的id和消息发送到服务器,服务器可以取出map中的response来实现通线吗?

蓝牙通信怎么实现?c++

1、蓝牙通信要满足几个条件?与手机品牌等有关吗?2、安卓应用程序如果可以分两部分编写吗?想用c++和android编写,能实现吗,整合的时候两部分怎么建立关联?有没有好的蓝牙编程的资料,求推荐!太穷了,没有c币哦

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。 通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。 JVM内存结构 JVM构成 说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐