多线程和Socket网络编程(二)
程序员文章站
2022-04-25 20:20:06
学习视频:https://www.bilibili.com/video/BV1FJ411v7hv?p=15 socket通信传输的字节是什么内容,客户端和服务端要知道这个字节是文件,是字符串还是其他?应该设计一个协定。例如在内容字节前面插入一个字节表示内容形式,0代表字符串,1代表文件...... ......
学习视频:https://www.bilibili.com/video/bv1fj411v7hv?p=15
socket通信传输的字节是什么内容,客户端和服务端要知道这个字节是文件,是字符串还是其他?应该设计一个协定。例如在内容字节前面插入一个字节表示内容形式,0代表字符串,1代表文件......
private void button1_click(object sender, eventargs e) { socket socket = new socket(sockettype.stream, protocoltype.tcp); ipaddress ip = ipaddress.parse("192.169.11.87"); ipendpoint endpoint = new ipendpoint(ip, 5000); socket.connect(endpoint); string msg = "消息来了"; byte[] buffer = encoding.utf8.getbytes(msg); //如何在buffer前面加一个字节呢,可以使用集合 list<byte> bufferlist = new list<byte>(); bufferlist.add(0); bufferlist.addrange(buffer); byte[] newbuffer = bufferlist.toarray(); socket.send(newbuffer); }
private void button1_click(object sender, eventargs e) { socket socket = new socket(sockettype.stream, protocoltype.tcp); ipaddress ip = ipaddress.parse("192.169.11.87"); ipendpoint endpoint = new ipendpoint(ip, 5000); socket.connect(endpoint); string path = string.empty; using (filestream fsread = new filestream(path, filemode.open, fileaccess.read)) { byte[] buffer = new byte[1024 * 1024 * 5]; int r = fsread.read(buffer, 0, buffer.length); list<byte> newbuffer = new list<byte>(); newbuffer.add(1); newbuffer.addrange(buffer); // 是r+1 socket.send(newbuffer.toarray(), 0, r+1, socketflags.none); } }