I think this is exactly what I need to do...thanks very much. I'm looking 
forward to implementing it.

On Saturday, September 12, 2020 at 5:43:09 AM UTC+1 Shulhan wrote:

>
>
> Pada tanggal Sab, 12 Sep 2020 02.54, Andy Hall <andyjo...@gmail.com> 
> menulis:
>
>> if I have multiple clients connected to a tcp server and I wish to write 
>> back to specific connections I can record the net.Conn value and then use 
>> the Write method on it...but when using Println I get the following for two 
>> clients...
>>
>> &{{0xc000094000}}
>> &{{0xc000094080}}
>>
>> which when testing with a simple write doesn't work...
>>
>> package main
>> import "net"
>> var c net.Conn = "&{{0xc000094000}}"
>> func writeConn(c net.Conn) {
>> c.Write([]byte(string("Hello\n")))
>> }
>> func main() {
>> writeConn(c)
>> }
>>
>> ...and results in the following...
>>
>> cannot use "&{{0xc000094000}}" (type string) as type net.Conn in 
>> assignment
>>
>> clearly using Println to output the net.Conn is not a viable var to use 
>> so how could I do this ? I intend to record each users net.Conn in a 
>> database which can then be queried as required.
>>
>> any help would be most greatly appreciated.
>>
>
>
> Either I miss something or Go has different socket concept, but last time 
> I learn this is not how the network socket works in general.
>
> First, &{{0xc000094000}} is the address of a variable. You can't convert 
> an address from string back to variable, because that would be security 
> issue. Usually socket connection is signed integer, in C you can assign 
> integer value to variable let other process write into it. But in Go, 
> connection is an interface/structure.
>
> If you want to record each users, you have two options:
>
> 1) Let the user send unique ID (for example their user ID or email or 
> username) on first accept.
>
> 2) Get unique ID from connection IP address (beware that two or more 
> connection may come from the same IP address).
>
> You then must have a map that store unique ID as key and net.Conn as 
> value. So, if you want to send some value to specific user, you query the 
> map first and if exist then you can proceeds.
>
> I hope that helps.
>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/5c2a3ba4-7269-42a1-8e07-9f3369a828e9n%40googlegroups.com.

Reply via email to